expect ‘‘ at 0, actual =] with root
Posted 程序员超时空
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了expect ‘‘ at 0, actual =] with root相关的知识,希望对你有一定的参考价值。
前言
转换一个JSON数组报错
15:58 ERROR o.a.c.c.C.[.[.[.[dispatcherServlet] - Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is com.alibaba.fastjson.JSONException: expect ':' at 0, actual =] with root cause
com.alibaba.fastjson.JSONException: expect ':' at 0, actual =
at com.alibaba.fastjson.parser.DefaultJSONParser.parseObject(DefaultJSONParser.java:302)
at com.alibaba.fastjson.parser.DefaultJSONParser.parseObject(DefaultJSONParser.java:1144)
at com.alibaba.fastjson.parser.DefaultJSONParser.parseObject(DefaultJSONParser.java:1149)
at com.alibaba.fastjson.parser.deserializer.MapDeserializer.deserialze(MapDeserializer.java:23)
at com.alibaba.fastjson.parser.deserializer.ContextObjectDeserializer.deserialze(ContextObjectDeserializer.java:9)
at com.alibaba.fastjson.parser.DefaultJSONParser.parseArray(DefaultJSONParser.java:787)
at com.alibaba.fastjson.parser.DefaultJSONParser.parseArray(DefaultJSONParser.java:721)
at com.alibaba.fastjson.parser.DefaultJSONParser.parseArray(DefaultJSONParser.java:716)
at com.alibaba.fastjson.JSON.parseArray(JSON.java:627)
at com.alibaba.fastjson.JSON.parseArray(JSON.java:607)
参数
[
"a":null,
"b":"1",
"c":[1,2,3]
,
"a":null,
"b":"1",
"c":[4,5,6]
]
原因
后端接收时为Object 形式直接data.toString()
转换是错误的
List<JSONObject> models = JSONObject.parseArray(data.toString(), JSONObject.class);
正确做法
String str = JSONObject.toJSONString(data);
List<JSONObject> models = JSONObject.parseArray(str, JSONObject.class);
先转换为JSON字符串,再转换为数组
后端接收json对象时,会转换为a=null,...
这种形式
我们需要的是a:null
这种形式
形式冲突
以上是关于expect ‘‘ at 0, actual =] with root的主要内容,如果未能解决你的问题,请参考以下文章
INCORRECT RESULT SIZE: EXPECTED 1, ACTUAL 0错误以及解决方法
QueryError:Incorrect result size: expected 1, actual 0
org.springframework.dao.EmptyResultDataAccessException: Incorrect result size: expected 1, actual 0
syntax error, expect {, actual error, pos 0出错调试
NUnit CollectionAssert.AreEqual(expected,actual) vs Assert.IsTrue(expected.SequenceEqual(actual))