申请传入的requestbody
{
"goods": [
{
"goodsId": 1,
"num": 2
}
]
}
fastjson依赖
com.alibaba fastjson 1.2.74申请RequestBody对象
import lombok.Data;
import com.alibaba.fastjson.JSONArray;
@Data
public class Content {
private JSONArray content;
接收代码
@PostMapping(value = "http")
public void HttpJsonReceive(@RequestBody Content content){
JSONArray jsonArray = content.getContent();
if(!CollectionUtils.isEmpty(jsonArray)){
for(Object item : jsonArray){
JSONObject jsonObject = (JSONObject)item;
log.info(jsonObject.toString());
}
}
}
报错:java.util.LinkedHashMap cannot be cast to com.alibaba.fastjson.JSONObject
修复后的代码
@PostMapping(value = "http")
public void HttpJsonReceive(@RequestBody Content content){
JSONArray jsonArray = content.getContent();
if(!CollectionUtils.isEmpty(jsonArray)){
for(Object item : jsonArray){
String s = JSON.toJSONString(item);
log.info(s);
}
}
}
总结:改动的部分仅有循环内的部分,如果不能直接将jsonArray中的内容转化成JSONObject对象,则可以先获取json字符串,再通过字符串转换成JSONObject
@PostMapping(value = "http")
public void HttpJsonReceive(@RequestBody Content content){
JSONArray jsonArray = content.getContent();
if(!CollectionUtils.isEmpty(jsonArray)){
for(Object item : jsonArray){
String s = JSON.toJSONString(item);
JSONObject jsonObject = JSONObject.parseObject(s);
log.info(s);
log.info(jsonObject.toString());
}
}
}
打印结果:
"goods": [
{
"goodsId": 1,
"num": 2
}
]