java 如何将响应从字符串转换为jsonObject?

dpiehjr4  于 2022-12-10  发布在  Java
关注(0)|答案(2)|浏览(205)

我的回复如下,我想把它转换成json对象,但我不知道怎么做。你能指导我吗?谢谢!回复:

{"m_list": "[{\"contract\":{\"category\":1,\"cor_num\":101,\"contract_name\":\"ABC\"},\"bu_unit\":{\"bu_name\":\"1-1E\"}}]"}

我的预期=〉它将转换为json对象,如下所示

{ m_list: 
   [ { contract: 
        { category: 1,
          cor_num: 101,
          contract_name: 'ABC'},
       bu_unit: { bu_name: '1-1E' }} ] }

我尝试了以下方法,但出现此错误:JSONObject文本必须在1处以'{'开始[第2行字符]
JSONObject =新建的JSONObject(字符串)

liwlm1x9

liwlm1x91#

您要转换的字符串不是JSON格式。根据JSON https://www.json.org/json-en.html的官方文档-它必须以左大括号{开始,以右大括号}结束。
如果你从某个服务器得到响应,在@tgdavies的注解后面,请求澄清。如果你自己做这个,那么这个字符串就是你想要的json文件的正确格式。

{"m_list":[{"contract":{"category":1,"cor_num":101,"contract_name":"ABC"},"bu_unit":{"bu_name":"1-1E"}}]}
0s0u357o

0s0u357o2#

您可以使用库 Josson 从JSON中的字符串恢复JSON对象/数组。
https://github.com/octomix/josson

反序列化

Josson josson = Josson.fromJsonString(
    "{\"m_list\": \"[{\\\"contract\\\":{\\\"category\\\":1,\\\"cor_num\\\":101,\\\"contract_name\\\":\\\"ABC\\\"},\\\"bu_unit\\\":{\\\"bu_name\\\":\\\"1-1E\\\"}}]\"}");

转型

JsonNode node = josson.getNode("map(m_list.json())");
System.out.println(node.toPrettyString());

输出

{
  "m_list" : [ {
    "contract" : {
      "category" : 1,
      "cor_num" : 101,
      "contract_name" : "ABC"
    },
    "bu_unit" : {
      "bu_name" : "1-1E"
    }
  } ]
}

相关问题