Maison > Java > javaDidacticiel > le corps du texte

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

Y2J
Libérer: 2017-05-16 09:23:28
original
1667 Les gens l'ont consulté

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;
Copier après la connexion

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); 
     }
   });
   }
  }
Copier après la connexion

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+'}'
Copier après la connexion

** 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+"}"
Copier après la connexion
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;
 }
Copier après la connexion

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); 
    }
});
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal