当前位置: 首页 > 知识库问答 >
问题:

如何将json中的字符串转换为json对象

赫连骏
2023-03-14

我有这个json字符串

{
  "team": "xyz",
  "patern": "abc",
  "service": "{\"version\":0,\"name\":\"some_service_name\"}",
  "op": "{\"version\":0,\"name\":\"some_op_name\"}",
  .
  .
  .
}

我想把它转换成JsonObject,因为它里面有一个json字符串,所以我必须取出JsonElement,然后使用它。问题是JsonElement“service”和“op”是字符串

我希望JsonObject像这样被转换

   {
      "team": "xyz",
      "patern": "abc",
      "service": {"version":0,"name":"some_service_name"},
      "op": {"version":0,"name":"some_op_name"},
      .
      .
      .
    }

我尝试了新的JsonParser().parse(字符串)和新的Gson().fromJson(字符串,JsonObject.class),但没有解析。还尝试了Jolt,但它将其解析为字符串。

我知道这可以通过将它映射到一个java类然后使用它来解决,但我想知道是否有一种方法可以避免额外的java类。

共有3个答案

章承
2023-03-14

使用org.json库:

 JSONObject jsonObj = new JSONObject("{\"team\": \"xyz\",\"patern\": \"abc\",
 \"service\": \"{\"version\":0,\"name\":\"some_service_name\"}\",
 \"op\": \"{\"version\":0,\"name\":\"some_op_name\"}\" }");

有关更多方法,请查看此链接

http://www.java67.com/2016/10/3-ways-to-convert-string-to-json-object-in-java.html

吴高畅
2023-03-14

这可能对你有帮助!

JSONEqualentBeanClass jSONEqualentBeanClass = null;
com.fasterxml.jackson.databind.ObjectMapper mapper = new com.fasterxml.jackson.databind.ObjectMapper();
try{
    jSONEqualentBeanClass  = mapper.readValue(yourJSONStr, JSONEqualentBeanClass.class);
}catch(Exception e){
 // 
}
淳于亦
2023-03-14

我还没有找到这样做的方法。不过,使用Gson效果很好。我会这样做。

Gson gson = new Gson();
Map res = gson.fromJson(string, Map.class);
Map service = gson.fromJson((String)res.get("service"), Map.class);
Map op = gson.fromJson((String)res.get("op"), Map.class);
res.put("service", service);
res.put("op", op);
String newString = gson.toJson(res);
 类似资料:
  • 问题内容: 将字符串表示形式转换为对象,但我要相反。对象要转换为JSON字符串,我有一个链接http://www.devcurry.com/2010/03/convert- javascript-object-to-json.html, 但是它需要json2.js jQuery是否具有本机功能方法来做到这一点? 问题答案: jQuery只会在调用本机浏览器方法之前进行一些正则表达式检查。如果不可用

  • 问题内容: 如何使用JavaScript(或jQuery)将描述对象的字符串转换为JSON字符串? 例如:转换这个( 不是 有效的JSON字符串): 到这个: 如果可能,我希望避免使用。 问题答案: 如果字符串是来自可靠来源 ,你可以使用然后的结果。像这样: 请注意,当您使用对象文字时,必须将其括在圆括号中,否则将花括号解析为块而不是对象。 我也同意以下问题的评论,那就是最好以有效的JSON开始编

  • 问题内容: 您如何使JS认为字符串是JSON? 我有一个仅在将JSON对象传递给它的情况下才起作用的函数。如果我以与JSON相同的格式将字符串传递给它,则它将不起作用。因此,我想让该函数认为传递给它的字符串是JSON。该字符串确实采用JSON格式。 我还尝试了以下方法。我通过Ajax输入了字符串,参数“ handle as”为“ JSON”,然后将结果传递给函数。 所以我推断出问题不在弦上。如何将

  • 问题内容: 我在JS中有一个JSON对象,我想将其转换为字符串。这是功能吗? 提前致谢, 问题答案: JSON.stringify() 将值转换为JSON,如果指定了replacer函数,则可以选择替换值,如果指定了replacer数组,则可以选择仅包括指定的属性。

  • 问题内容: 我从SQL查询中得到以下结果: 当前是PHP中的字符串。我知道它已经是JSON形式,有没有简单的方法可以将其转换为JSON对象? 我需要将其作为一个对象,以便可以像“ Coords”一样添加一个额外的项目/元素/对象。 问题答案: @deceze说的是正确的,看来您的JSON格式不正确,请尝试以下操作: 使用到的字符串转换成对象()或数组:http://php.net/manual/e

  • 问题内容: 我从公共API接收到一个JSON对象,该对象本身具有一个转义的JSON字符串。 我如何将此属性转换为实际的JSON对象(未转义),以便使用NewtonSoft Json.NET反序列化整个响应? 问题答案: 这是我根据 Sam 的答案使用的可行解决方案: