zoukankan      html  css  js  c++  java
  • JSON转换集合,报错exepct '[', but {, pos 1, json或者syntax error, expect {, actual [, pos 0

    第一个错误


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

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

      • 才报这个错误。(此方法是解析数组的你非要传个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);
  • 相关阅读:
    MongoDB安装&启动
    MongoDB集群搭建
    树与二叉树
    git入门
    MongoDB Java Driver
    Spring整合Junit4
    SQL字符串的数字部分递增
    [求职经历反面教材]4周面试20家,面霸磨成面瘫,仅供初级程序员参考!
    简陋的信息采集方式
    由一个博问学到的SQL查询方法 (一道多对多关系查询的面试题)
  • 原文地址:https://www.cnblogs.com/Twittery/p/14343904.html
Copyright © 2011-2022 走看看