Heim  >  Artikel  >  Java  >  Wie interagiere ich mit JSON, wenn der Rückgabewert der Controller-Methode ein einfacher Typ ist?

Wie interagiere ich mit JSON, wenn der Rückgabewert der Controller-Methode ein einfacher Typ ist?

Y2J
Y2JOriginal
2017-05-16 09:23:281596Durchsuche

In diesem Artikel wird hauptsächlich die JSON-Dateninteraktions-Controller-Methode von springmvc vorgestellt. Der Rückgabewert der Controller-Methode ist von großem praktischen Wert.

Wenn die Der Rückgabewert der Controller-Methode ist ein einfacher Typ wie String. Wie interagiere ich mit JSON?

Verwenden Sie @RequestBody

Der Code lautet beispielsweise wie folgt:

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

 return channelId;

Wenn der Code so ist das Obige, die Rezeption Wenn Sie JSON senden, sollte es so geschrieben werden (es gibt viele Möglichkeiten, es zu schreiben, verwenden Sie es einfach)

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); 
     }
   });
   }
  }

Hier muss besonders darauf geachtet werden: Wie in der hervorgehoben Im vorherigen Artikel ist bei Verwendung von @RequestBody die String-Kanal-ID erforderlich, um die Daten zu empfangen. Das heißt, wenn Daten wie folgt geschrieben werden: data:{'channelId':channelId}, sind sie falsch. Weil dies eine JSONObjekt-Form ist. Wenn Sie die Funktion JSON.stringify()

nicht verwenden möchten

, dann verbinden Sie die Zeichenfolgen manuell selbst:

Beachten Sie außerdem, dass „channelId“ vorhanden ist Doppelte Anführungszeichen können nicht in einfache Anführungszeichen geschrieben werden, da es sich um eine JSON-Syntaxregel handelt. Wenn Sie es in einfache Anführungszeichen ändern, wird
data:'{"channelId":'+channelId+'}'

** fälschlicherweise als

geschrieben. Obwohl es an das Backend übergeben werden kann, wird bei der Rückgabe undefiniert angezeigt das Backend. Das heißt,
data:"{'channelId':"+channelId+"}"
key

muss in doppelte Anführungszeichen gesetzt werden.

Verwenden Sie nicht @RequestBody

Front-End-Code
 @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;
 }

Auf diese Weise wird writeValueAsString in ObjectMapper zum Konvertieren von Java-Objekten verwendet json-String.
$.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); 
    }
});

Zusammenfassung: Diese Methode hat eigentlich keine große praktische Bedeutung, da auf diese Weise in der Regel keine Daten empfangen werden. Verstehe es einfach!


【Verwandte Empfehlungen】

1.

Besondere Empfehlung: Version „php Programmer Toolbox“ V0.1 herunterladen2.

Kostenloses Java-Video-Tutorial

3.

JAVA-Einsteiger-Video-Tutorial

Das obige ist der detaillierte Inhalt vonWie interagiere ich mit JSON, wenn der Rückgabewert der Controller-Methode ein einfacher Typ ist?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn