如何在反序列化后从变量tags
获取JSON作为字符串?
以json文件为例:
{
"first_name": "John",
"last_name" : "Well",
"tags": {"1001": "author", "1002": "signer"}
}
类人物:
Class Person{
String first_name;
String last_name;
String tags; // here should be json as string
}
调用funciton deseralization 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多个对象。
答案 0 :(得分:1)
使用JsonObject
代替String
,然后在此字段上调用方法toString()
(例如,您可以为此目的设置getter)
答案 1 :(得分:0)
喜欢 dtx12 表示您可以执行以下操作:
JsonObject jsonObject = gson.fromJson( jsonString, JsonObject.class);
String tags = jsonObject.get("tags").toString();