Heim > Java > javaLernprogramm > Hauptteil

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

Y2J
Freigeben: 2017-05-16 09:23:28
Original
1604 Leute haben es durchsucht

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;
Nach dem Login kopieren

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); 
     }
   });
   }
  }
Nach dem Login kopieren

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+'}'
Nach dem Login kopieren

** 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+"}"
Nach dem Login kopieren
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;
 }
Nach dem Login kopieren

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); 
    }
});
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!