第一个错误
- 调用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" |
| } |
- 案例
| |
| @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)); |
| return new Return(); |
| } |
- 解决方法
[{"name":"张三","age":"12"}]
第二个错误
- 调用JSON.parseObject(json, xxx.class);出错syntax error, expect {, actual [, pos 0!语法错误,期望{,实际的[,pos 0!
- 这个错误是因为你的json是数组,解析的时候有[]括号,比如
[{"name":"fs","age":"12"}]
- 才报这个错误。(此方法是解析object的你非要传个数组,肯定报错啊)
- 解决方法
- 调用JSON.parseArray(json, xxx.class)即可;
- 或者说你用循环
| for(int i =0;i<jsonArray.size();i++){ |
| JSON.parseObject(json[i], xxx.class); |
| } |
总结
- 解析Object,也就是一个JSON串。
- JSON.parseObject(json, xxx.class);
- 解析一组【数组】Object,也就是一个数组中包含N个字符串。
- JSON.parseArray(json, xxx.class);
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 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的设计差异
· 三行代码完成国际化适配,妙~啊~