我有一个像这样的json字符串:
{
"d": {
"results": [
{
"__metadata": {
"uri": "http://localhost:2000",
"key_fields": "Accountnum",
"rows_affected": 0,
"last_autoinc": 0
},
"Accountnum": "9999999",
"workphone": null,
"name": "Smith",
"address": "33 Main St",
"city": "Anytown",
"state": "FL",
"zip": "33333",
}
]
}
}
我尝试根据stackoverflow上的不同问题对其进行反序列化,但我无法做到正确。 以下是我创建的课程,我只需要accountnum和名称。
public class Result {
@SerializedName("Accountnum")
public String accountnumStr;
@SerializedName("name")
public String nameStr;
}
我有一个带有json myresult的字符串。
Gson gson = new Gson();
Result result = gson.fromJson(myresult,Result.class);
myName.setText(result.nameStr);
我收到一个空字符串。 感谢
答案 0 :(得分:1)
由于有一个对象持有您尝试创建的结果对象,因此您将结果类设为内部类。你Result
课必须看起来像这样:
public class ResultParent {
public class Result {
@SerializedName("Accountnum")
public String accountnumStr;
@SerializedName("name")
public String nameStr;
}
}
答案 1 :(得分:0)
如果您根据类对象可视化您的JSON,那么它将完全没有问题。想象一下,您的根对象包含名为“D”的属性为“D”的属性。类型“D”包含另一种类型“结果”的“结果”列表。结果包含上述属性。这是它的图片:
class RootObj {
D d;
}
class D {
List<Result> results;
}
class Result {
@SerializedName("Accountnum")
public String accountnumStr;
@SerializedName("name")
public String nameStr;
}
要从JSON获取对象,您将执行以下操作:
Gson g = new Gson();
RootObj ro = g.fromJson(jsonString, RootObj.class);