场景

fastjson.JSONException:field null expect '[', but string, pos 4, line 1......

使用json把一个实体类列表转字符串, 输出后双引号被转义, json内容如下, 转回对象的时候报了JSONException

"[{\"pCode\":\"1\",\"pValue\":\"大专\",\"code\":\"01\",\"value\":\"大大\"},{\"pCode\":\"2\",\"pValue\":\"本科\",\"code\":\"\",\"value\":\"\"}]"

方案

哪有啥方案, 双引号里再套双引号肯定会被转义, 去掉转义符就好了

        // 去掉转义符
        String unescapeJava = StringEscapeUtils.unescapeJava(jsonValue);
        String format = "\"[{";
        // 这个是为了去掉两边的引号
        if (unescapeJava.contains(format)) {
            unescapeJava = unescapeJava.substring(INT_1, unescapeJava.length() - INT_1);
        }
        // JSONArray.parseArray(unescapeJava, Entity.class)

扩展

实体类转fastjson的属性排序

import com.alibaba.fastjson.annotation.JSONField;

属性上加 @JSONField注解

@JSONField(ordinal = 1)

GitHub 加速计划 / js / json
41.72 K
6.61 K
下载
适用于现代 C++ 的 JSON。
最近提交(Master分支:1 个月前 )
960b763e 4 个月前
8c391e04 7 个月前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐