【MapSheep】
[好记性不如烂笔头]
posts - 228,comments - 15,views - 17万

第一个错误


  1. 调用JSON.parseArray(json, xxx.class);出错exepct '[', but {, pos 1, json!此方法要求传入一个json数组!
    • 这个错误是因为你的json不是数组,解析的时候没有[]括号,比如

    • 才报这个错误。(此方法是解析数组的你非要传个object,肯定报错啊)
{
"timestamp": "2021-01-29T03:09:36.966+0000",
"status": 500,
"error": "Internal Server Error",
"message": "exepct '[', but string, pos 207, json : \"[\\r\\n {\\r\\n \\\"id\\\": \\\"PT_0107130809062620001\\\",\\r\\n \\\"time\\\": \\\"20210129092600\\\",\\r\\n \\\"data\\\": {\\r\\n \\\"P\\\": 0.0,\\r\\n \\\"SOC\\\": \\\"0\\\"\\r\\n }\\r\\n }\\r\\n]\"",
"path": "/staff"
}
  1. 案例
// 模拟自定义的请求接口
@RequestMapping(method = RequestMethod.POST)
@ResponseBody
public Object CarController(@RequestBody String json) {
Object toJSON = JSON.toJSON(json);
List<Parameter> list = JSONArray.parseArray(String.valueOf(toJSON), Parameter.class);
System.out.println(JSON.toJSON(list)); //输出:[{"data":{"P":0.0,"SOC":"0"},"id":"PT_0107130809062620001","time":"20210129092600"}]
return new Return();
}
  1. 解决方法
    • 在json参数加上[]就好了,这样是没问题的

    [{"name":"张三","age":"12"}]

第二个错误


  1. 调用JSON.parseObject(json, xxx.class);出错syntax error, expect {, actual [, pos 0!语法错误,期望{,实际的[,pos 0!
    • 这个错误是因为你的json是数组,解析的时候有[]括号,比如

    [{"name":"fs","age":"12"}]

    • 才报这个错误。(此方法是解析object的你非要传个数组,肯定报错啊)
  2. 解决方法
    • 调用JSON.parseArray(json, xxx.class)即可;
    • 或者说你用循环
for(int i =0;i<jsonArray.size();i++){
JSON.parseObject(json[i], xxx.class);
}

总结


  1. 解析Object,也就是一个JSON串。
    • JSON.parseObject(json, xxx.class);
  2. 解析一组【数组】Object,也就是一个数组中包含N个字符串。
    • JSON.parseArray(json, xxx.class);
posted on   (Play)  阅读(3322)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~

点击右上角即可分享
微信分享提示