【问题标题】:How to Deserialize a JSON and serialize a specific String value pair as different JSON?如何反序列化 JSON 并将特定的字符串值对序列化为不同的 JSON?
【发布时间】:2023-03-28 20:27:01
【问题描述】:

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

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

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

{
"place_id": "07e0a63d862b2982e4c4b7e655f148d2"
}

【问题讨论】:

  • 所以你只想保留"place_id"?您在问题中提供的 JSON 主体是完整的 JSON 主体还是(嵌套)数组或对象的元素?
  • 这是一个完整的 JSON 正文,我收到了 @Marcono1234 的回复

标签: json serialization gson json-deserialization jackson-databind


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-15
    • 1970-01-01
    • 2016-12-22
    • 1970-01-01
    • 1970-01-01
    • 2023-03-23
    相关资源
    最近更新 更多