Home >Java >javaTutorial >Tutorial on springMVC processing json data

Tutorial on springMVC processing json data

Y2J
Y2JOriginal
2017-05-16 09:17:491547browse

This article mainly introduces the detailed explanation of springMVC's method of interacting with json data. The editor thinks it is quite good, so I will share it with you now and give it as a reference. Let’s follow the editor and take a look.

Front desk code:

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

The bolded part is what you need to pay attention to.

The contentType:'application/json;charset=utf-8' cannot be omitted, otherwise a 415 error will be reported.

After all, what I am sending is jsonString, so I have to tell the server that the data coming is json data.

JSON.stringify() is to convert a JavaScript object into a json string

JSON.parse(jsonstr) is to convert a json string into a JavaScript object

Additional knowledge: json is actually a subset of JavaScript.

Reference address: www.jb51.net/article/35090.htm

Backend code:

pojo class:

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;
}
## The #get and set methods are generated by yourself, so I won’t post them here.


Method in 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;
  }

Note:

1. @RequestBody cannot be omitted because the data sent from the front desk It is json data. You must use this annotation to analyze how to receive this data to the object of the pojo class.


2. Because I also want to return json data. Therefore, this annotation @ResponseBody is needed to convert the Java object into a json string


3. When using @RequestBody, the data passed from the front desk is required to be a json string. If it is a json object, an error will occur. So if you write this in the frontend data part: data:{"channelId":2}, this will not work. Because {"channelId":2} is a json object, you need to add quotation marks '{"channelId":2}' in the outer layer.

4. What to do if the method return value is a simple type such as String!


【Related Recommendations】

1.

Special Recommendation:"php Programmer Toolbox" V0.1 version Download

2.

Java free video tutorial

3.

JAVA beginner video tutorial

The above is the detailed content of Tutorial on springMVC processing json data. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn