关于json字符串转Java对象, 转Java集合

前台传参:
	{}形式的数据,使用parseObject,--->json转Java对象
	[]形式的数据,使用parseArray,--->json转Java集合

今天遇到了个坑, 我的需求是将json集合转变成java集合, 前台明明传递的是[]形式的json集合, 后台解密后无论如何转换都报错,

异常详情:com.alibaba.fastjson.JSONException: syntax error, expect {, actual string, pos 0, fastjson-version 1.2.70
找了半天发现是:多了一个[ ],这样导致数据中嵌套数据, 后台格式解析不出来

在这里插入图片描述

错误示范如图所示

[
    [
        {
            "app_id":"XXXXX",
            "is_encrypt":"true",
            "distinct_id":"C01A58F3-EFD7-B6A2-9A3F-86B77A13D3F6",
            "user_id":"",
            "op_time":"2021-02-01 17:15:3",
            "event":"home_page",
            "properties":{
                "os":"ios",
                "os_version":"12.4",
                "app_version":"3.4.2",
                "ext":[

                ]
            }
        },
        {
            "app_id":"XXXXXX",
            "is_encrypt":"true",
            "distinct_id":"C01A58F3-EFD7-B6A2-9A3F-86B77A13D3F6",
            "user_id":"",
            "op_time":"2021-02-01 17:15:16",
            "event":"service_home_page",
            "properties":{
                "os":"ios",
                "os_version":"12.4",
                "app_version":"3.4.2",
                "ext":[

                ]
            }
        }
    ]
]

fastjson解决方法

		//decrpt为解密出来的json字符串, 如上图所示
		JSONArray jsonArray = JSONArray.parseArray(decrypt);
		//获取索引为0的json字符串集合
        JSONArray jsonArray1 = jsonArray.getJSONArray(0);
        List<UserDetailInfoDTO> userDetailInfoDTOS =jsonArray1.toJavaList(UserDetailInfoDTO.class);
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值