我有这个json字符串
{
"team": "xyz",
"patern": "abc",
"service": "{\"version\":0,\"name\":\"some_service_name\"}",
"op": "{\"version\":0,\"name\":\"some_op_name\"}",
.
.
.
}我想把它转换成JsonObject,因为它里面有一个json字符串,所以我必须取出JsonElement,然后再使用它。问题是服务“JsonElement”和"op“是字符串
我希望JsonObject像这样转换
{
"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类的情况下实现。
发布于 2017-12-29 16:47:33
我还没有找到这样做的方法。不过,使用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);发布于 2017-12-29 17:58:02
这可能会对你有帮助!
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){
//
}发布于 2017-12-29 18:12:23
使用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
https://stackoverflow.com/questions/48019673
复制相似问题