0

我有一个这样的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 和 name。

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);

我收到一个空字符串。谢谢

4

2 回答 2

1

由于有一个对象持有您尝试创建的结果对象,因此您已将结果类设为内部类。你的Result班级必须看起来像这样:

public class ResultParent {

    public class Result {
        @SerializedName("Accountnum")
        public String accountnumStr;

        @SerializedName("name")
        public String nameStr;    
    }
}
于 2012-06-15T04:39:58.657 回答
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);
于 2012-06-15T05:23:47.420 回答