In diesem Artikel wird hauptsächlich die Methode zur Interaktion mit JSON-Daten von springMVC ausführlich erläutert. Der Herausgeber findet sie recht gut, daher werde ich sie jetzt mit Ihnen teilen und als Referenz verwenden. Folgen wir dem Herausgeber und werfen Sie einen Blick darauf.
Rezeptionscode:
function channel(){ //先获取选中的值 var channelId = $("#channelId option:selected").val(); //来判断发送的链接 if(channelId ==2){ **需要注意地方 start** var schoolBannerInfo = { "img": channelId, "title": channelId, "info": channelId, "channelId": channelId }; **需要注意地方 end** $.ajax({ url:"ceshijson", type:"post", dataType:'json', **需要注意地方 start** contentType:'application/json;charset=utf-8', data:JSON.stringify(schoolBannerInfo), **需要注意地方 end** success:function(data){ alert(data); }, error:function(XMLHttpRequest, textStatus, errorThrown){ alert("Error") alert(XMLHttpRequest.status); alert(XMLHttpRequest.readyState); alert(textStatus); } }); } }
Auf den fettgedruckten Teil müssen Sie achten.
Der contentType:'application/json;charset=utf-8' darf nicht weggelassen werden, andernfalls wird ein 415-Fehler gemeldet.
Schließlich ist das, was ich sende, JSONString, also muss ich dem Server mitteilen, dass es sich bei den kommenden Daten um JSON-Daten handelt.
JSON.stringify() dient zum Konvertieren von JavaScript-Objekt in einen JSON-String
JSON.parse(jsonstr) dient zum Konvertieren eines JSON-Strings in ein JavaScript-Objekt
Ergänzendes Wissen: JSON ist eigentlich eine Teilmenge von JavaScript.
Referenzadresse: www.jb51.net/article/35090.htm
Backend-Code:
Pojo-Klasse:
public class SchoolBannerInfo { private Integer id; private Date createTime; private String img; private String title; private String info; private Integer seq; private Integer schoolId; private String type; private boolean enable; private String link; private String channelId; }
Die Get- und Set-Methoden werden von Ihnen selbst generiert, daher werde ich sie hier nicht veröffentlichen.
Methode im Controller:
@RequestMapping(value="/ceshijson",produces="application/json;charset=UTF-8") @ResponseBody public SchoolBannerInfo ceshijson(@RequestBody SchoolBannerInfo schoolBannerInfo) throws IOException{ // Map<String,Object> map = new HashMap<String,Object>(); // map.put("channelId", channelId); // ObjectMapper mapper = new ObjectMapper(); // channelId = mapper.writeValueAsString(map); return schoolBannerInfo; }
Hinweis:
1 @RequestBody kann nicht weggelassen werden, da es gesendet wird von der Rezeption Bei den Daten handelt es sich um JSON-Daten. Sie müssen diese Annotation verwenden, um zu analysieren, wie diese Daten an das Objekt der Pojo-Klasse empfangen werden.
2. Weil ich auch JSON-Daten zurückgeben möchte. Daher wird diese Annotation @ResponseBody benötigt, um das Java-Objekt in einen JSON-String zu konvertieren
3. Bei Verwendung von @RequestBody müssen die vom Front Desk übergebenen Daten ein JSON-String sein. Wenn es sich um ein JSON-Objekt handelt, tritt ein Fehler auf. Wenn Sie also Folgendes in den Frontend-Datenteil schreiben: data:{"channelId":2}, wird dies nicht funktionieren. Da {"channelId":2} ein JSON-Objekt ist, müssen Sie in der äußeren Ebene Anführungszeichen „{"channelId":2}“ hinzufügen.
4. Was ist zu tun, wenn der Rückgabewert der Methode ein einfacher Typ wie String ist?
【Verwandte Empfehlungen】
1. Besondere Empfehlung: Version „php Programmer Toolbox“ V0.1 herunterladen
2. Kostenloses Java-Video-Tutorial
3 JAVA-Einsteiger-Video-Tutorial
Das obige ist der detaillierte Inhalt vonTutorial zur Verarbeitung von JSON-Daten durch springMVC. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!