GSON,禁用特定 field/variable 的反序列化并将 json 保存为字符串

GSON, disable deserializaton from specific field/variable and save json as string

如何在反序列化后从变量 tags 中获取 JSON 作为字符串?

json 文件为例:

{
"first_name": "John",
"last_name" : "Well",
"tags": {"1001": "author", "1002": "signer"}
}

class 人:

Class Person{
  String first_name;
  String last_name;

  String tags; // here should be json as string
}

调用反序列化函数的方法json.

GsonBuilder builder = new GsonBuilder();
Gson gson = builder.create();
gson.fromJson(txt, Person.class);

错误:

10-04 07:33:28.035 26156-26481/pl.xxxE/AndroidRuntime: com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected a string but was BEGIN_OBJECT at line 4 column 9

** 已更新 1 **

@dtx12 的回答:

Class Person{
  String first_name;
  String last_name;
  JSONObject tags; // but result {}
}

此外,由于结果为空,该答案也无济于事。但是在反序列化的过程中应该停止这种情况......我说的是使用移动应用程序反序列化 1000 多个对象的性能。

使用 JsonObject 而不是 String,然后在此字段上调用方法 toString()(例如,您可以为此目的制作 getter)

喜欢dtx12说你可以做以下事情:

JsonObject jsonObject = gson.fromJson( jsonString, JsonObject.class);
String tags = jsonObject.get("tags").toString();