RequestBody申请json对象获取 java.util.LinkedHashMap cannot be cast to com.alibaba.fastjson.JSONObject

申请传入的requestbody

{
    
    
    "content":[{
    
    "id":1,"name":"张三"},{
    
    "id":2,"name":"李四"}]
}

fastjson依赖

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.74</version>
        </dependency>

申请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());
            }
        }
    }

打印结果:

{
    
    "id":1,"name":"张三"}
{
    
    "name":"张三","id":1}
{
    
    "id":2,"name":"李四"}
{
    
    "name":"李四","id":2}

猜你喜欢

转载自blog.csdn.net/MDJ_D2T/article/details/117773868