gson 如何反序列化一个JSON并将一个特定的字符串值对序列化为不同的JSON?

up9lanfz  于 2022-11-06  发布在  其他
关注(0)|答案(1)|浏览(218)

我想要反序列化的Json主体如下所示

{
"status": "OK",
"place_id": "07e0a63d862b2982e4c4b7e655f148d2",
"scope": "APP"
}

下面是反序列化Json之后,我想从上面构建的Json主体

{
"place_id": "07e0a63d862b2982e4c4b7e655f148d2"
}
yhxst69z

yhxst69z1#

因为JSON数据看起来相当小,所以可以使用Gson的JsonParser.parseString(String)方法将数据解析为内存中的表示形式,然后将相关的JSON对象成员复制到新的JsonObject中,并使用Gson.toJson(JsonElement)将其序列化为JSON:

JsonObject original = JsonParser.parseString(json).getAsJsonObject();
JsonObject copy = new JsonObject();
// Might also have to add some validation to make sure the member
// exists and is a string
copy.add("place_id", original.get("place_id"));

String transformedJson = new Gson().toJson(copy);

如果这个解决方案对您来说不够高效,您还可以考虑一下JsonReaderJsonWriter

相关问题