请问一下这种格式的,该如何转换成JAVA对象呢?

img


使用了JsonObject.parse就报错,转换不了

转换不了,是因为你这里的都是=号,你先把=号包括=前后的空格全部替换成:号再转

这个结果格式是执行了对象的toString()方法,生成这个格式不是JSON字符串,所以JsonObject.parse就会报错。

对象转字符串的时候使用:JSON.toJSONString(document01Vo) 得到的JSON串就可以使用JsonObject.parse转换, 如下:

public Object insertOne(Document01Vo document01Vo) {
  Document01 document = JSON.parseObject(JSON.toJSONString(document01Vo), Document01.class);
}

很显然你发的数据格式不是json格式,json格式是啥建议楼主查询一下,个人觉得json是对象和数组形式的数据各种嵌套或并列组成的数据,每一个对象本身是key : value格式的,中间用 : 分割开 【重点:你这里key value是 = 号分隔开 我觉得应该是map类型的数据
那么我们试着造一下你提供的数据吧:

        Map map = new HashMap<>();
        Map map1 = new HashMap<>();
        Map map2 = new HashMap<>();
        map2.put("creater",24234);
        map2.put("fileName","HT20211100000.ofd");
        map2.put("fileSize",44249);
        map2.put("fileCode","codeydx");
        map2.put("creater","24234");
        map2.put("version",1);
        map2.put("filetype",11);
        map2.put("creater","24234");
        map1.put("data",map2);
        map1.put("success",true);
        map.put("TRAN_SUCCESS","1");
        map.put("restApiResponse",map1);
        map.put("TRACE_NO","noydx");
        System.out.println("map = " + map);

执行一下,你提供的应该就是一个map类型的数据,因此你提供的数据本身并不是json格式的数据,直接转换的时候肯定会报异常
如何才能变成你所说的java对象呢?

JSON.toJSONString则是将对象转化为Json字符串
JSON.parseObject 是将Json字符串转化为相应的对象 这里默认你用的alibaba的fastjson
很显然我们可以先把map对象转换成json字符串,然后再转换成json对象

String s = JSONObject.toJSONString(map);
System.out.println("s = " + s);
JSONObject jsonObject = JSONObject.parseObject(s);
System.out.println("jsonObject = " + jsonObject);

最终的结构应该是这样的:

img

建议:截图自己很方便 但是别人帮你看问题的时候还是把代码贴出来才能更加方便你我他

这种格式阿,有两种建议,第一种,你先把他当作一个字符串,将里面的【=】符号用replace方法替换为【:】符号,然后尝试使用json去转换。但是不一定成功。因为json对于属性和字符串变量是要求使用双引号包起来的。
那么第二种方法就是,你去构建一个解析类,去解析他,这里提供一种思路:
先将空格符合替换为空字符串,再将{}替换为字符串,[]这样的..
之后就只剩下逗号隔开的带等于的key-value对,此时就可以转换为Map对象。
但是他会失去层级关系。
如果你想保留层级关系,可以对{,[这些符号进一步处理。