前言
Exception in thread "main" com.alibaba.fastjson2.JSONException: not allow unquoted fieldName, offset 2, character , line 1, column 3, fastjson-version 2.0.25 { "data":null, "code":200, "msg":"成功"}
at com.alibaba.fastjson2.JSONReader.read(JSONReader.java:1493)
at com.alibaba.fastjson2.JSON.parseObject(JSON.java:215)
at com.alibaba.fastjson2.JSONObject.parseObject(JSONObject.java:1970)
各位盆友,请仔细看,如第一眼立即就发现了问题所在,给博主留个言,我为你点赞!
一、错误的案例
这里,首先可以看出是Json格式存在问题。通常我们习惯用各种在线XXX工具,满足快速格式化的需要,比如Json压缩、格式化、转义等。如使用XXX工具的格式化后,即使格式校验通过,也可能出现意外。博主在这里列示一些典型的错误。
示例1
每个field之间存在数量不一的空格:
{ "data":null, "code":200, "msg":"成功"}
示例2
部分field没有添加双引号:
{data:null,"code":200,"msg":"成功"}
其他明显问题不再列示了。以上2种示例,容易犯错。如通过JSONObject.parseObject(“json字符串”)
转换对象时,一定会报异常。
二、正确的写法
- 保持
json
的每个field
都有双引号; - 保持
json
的每个field
之间没有多余的空格;
结语
通过这个案例,可以见得:培养一个好习惯,可以减少犯错的可能,也降低了开发的成本
。