Maison  >  Article  >  Java  >  Comment interagir avec json lorsque la valeur de retour de la méthode du contrôleur est un type simple ?

Comment interagir avec json lorsque la valeur de retour de la méthode du contrôleur est un type simple ?

Y2J
Y2Joriginal
2017-05-16 09:23:281677parcourir

Cet article présente principalement la méthode du contrôleur d'interaction de données json de springmvc. La valeur de retour de la méthode du contrôleur est un type simple, ce qui est d'une grande valeur pratique. Les amis dans le besoin peuvent s'y référer

Lorsque le la valeur de retour de la méthode du contrôleur est un type simple tel que String Comment interagir avec json ?

Utilisez @RequestBody

Par exemple, le code est le suivant :

@RequestMapping(value="/ceshijson",produces="application/json;charset=UTF-8")
@ResponseBody
public String ceshijson(@RequestBody String channelId) throws IOException{

 return channelId;

Si le code est comme ce qui précède, la réception Lors de l'envoi de json, il doit être écrit comme ceci (il existe de nombreuses façons de l'écrire, utilisez-le simplement)

function channel(){
   //先获取选中的值
   var channelId = $("#channelId option:selected").val();
   //来判断发送的链接
   if(channelId ==2){


   $.ajax({
     url:"ceshijson",
     type:"post",
     dataType:'json',
     contentType:'application/json;charset=utf-8',
     data:JSON.stringify({'channelId':channelId}),
     success:function(data){
      alert(data.channelId);
     },
     error:function(XMLHttpRequest, textStatus, errorThrown){ 
     alert("Error") 
     alert(XMLHttpRequest.status); 
     alert(XMLHttpRequest.readyState); 
     alert(textStatus); 
     }
   });
   }
  }

Une attention particulière doit être portée ici : comme souligné dans le article précédent, lorsque @RequestBody est utilisé, il nécessite le String channelId pour recevoir les données. Autrement dit, si les données sont écrites comme ceci : data:{'channelId':channelId}, c'est faux. Parce que c'est le formulaire jsonobject. Si vous ne souhaitez pas utiliser la fonction JSON.stringify()

, épissez manuellement les chaînes vous-même :

Notez également que ChannelId est dans guillemets doubles. Il ne peut pas être écrit entre guillemets simples car il s’agit d’une règle de syntaxe JSON. Si vous le remplacez par des guillemets simples, c'est-à-dire que
data:'{"channelId":'+channelId+'}'

** est incorrectement écrit comme

Bien qu'il puisse être transmis au backend, undefined apparaîtra lorsqu'il sera renvoyé par. le back-end. Autrement dit,
data:"{'channelId':"+channelId+"}"
key

doit être entouré de guillemets doubles.

Ne pas utiliser @RequestBody

Code frontal
 @RequestMapping(value="/ceshijson",produces="application/json;charset=UTF-8")
 @ResponseBody
 public String ceshijson(String channelId) throws IOException{
  Map<String,Object> map = new HashMap<String,Object>();
   map.put("channelId", channelId);
   ObjectMapper mapper = new ObjectMapper();
   channelId = mapper.writeValueAsString(map);
  return channelId;
 }

De cette façon, utilise writeValueAsString dans ObjectMapper pour convertir des objets Java en json Chaîne.
$.ajax({
   url:"ceshijson",
   type:"post",
   dataType:&#39;json&#39;,
   //contentType:&#39;application/json;charset=utf-8&#39;,
   data:"channelId="+channelId,
   success:function(data){
    alert(data);
   },
   error:function(XMLHttpRequest, textStatus, errorThrown){ 
     alert("Error") 
     alert(XMLHttpRequest.status); 
     alert(XMLHttpRequest.readyState); 
     alert(textStatus); 
    }
});

Résumé : Cette méthode n'a en réalité pas beaucoup de sens pratique, car les données ne sont généralement pas reçues de cette manière. Comprenez simplement !


【Recommandations associées】

1.

Recommandation spéciale : "php Programmer Toolbox" version V0.1 Télécharger2.

Tutoriel vidéo gratuit Java

3

Tutoriel vidéo JAVA pour débutant

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn