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, wirddata:'{"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+"}"
muss in doppelte Anführungszeichen gesetzt werden.
Verwenden Sie nicht @RequestBodyFront-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; }
$.ajax({ url:"ceshijson", type:"post", dataType:'json', //contentType:'application/json;charset=utf-8', 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-TutorialJAVA-Einsteiger-Video-TutorialDas 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!