首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将json中的字符串转换为json对象

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

Stack Overflow用户
提问于 2017-12-29 16:27:45
回答 3查看 2.1K关注 0票数 2

我有这个json字符串

代码语言:javascript
运行
复制
{
  "team": "xyz",
  "patern": "abc",
  "service": "{\"version\":0,\"name\":\"some_service_name\"}",
  "op": "{\"version\":0,\"name\":\"some_op_name\"}",
  .
  .
  .
}

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

我希望JsonObject像这样转换

代码语言:javascript
运行
复制
   {
      "team": "xyz",
      "patern": "abc",
      "service": {"version":0,"name":"some_service_name"},
      "op": {"version":0,"name":"some_op_name"},
      .
      .
      .
    }

我尝试了new JsonParser()、.parse(String)和new Gson().fromJson(string,JsonObject.class),但都不能解析。我也尝试过Jolt,但它将其解析为字符串。

我知道这可以通过将其映射到java类并使用它来解决,但我想知道是否有一种方法可以在不增加java类的情况下实现。

EN

回答 3

Stack Overflow用户

发布于 2017-12-29 16:47:33

我还没有找到这样做的方法。不过,使用Gson可以很好地工作。我会做这样的事情。

代码语言:javascript
运行
复制
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);
票数 2
EN

Stack Overflow用户

发布于 2017-12-29 17:58:02

这可能会对你有帮助!

代码语言:javascript
运行
复制
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){
 // 
}
票数 0
EN

Stack Overflow用户

发布于 2017-12-29 18:12:23

使用org.json库:

代码语言:javascript
运行
复制
 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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48019673

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档