如何解析JSON响应对象数组,其中数组没有键名

时间:2018-07-20 18:29:32

标签: android json retrofit2 jsonparser

我正在尝试解析没有数组名称的json结果。这是我的json响应:

[
    {
        "Id": 2293,
        "Name": "Dr.",
        "Active": true
    },
    {
        "Id": 2305,
        "Name": "Mr.",
        "Active": true
    },
    {
        "Id": 2315,
        "Name": "Mrs.",
        "Active": true
    }
]

如何使用com.squareup.retrofit2:retrofit:2.1.0库对此进行解析?

2 个答案:

答案 0 :(得分:1)

创建一个类,

self.passTurn()

然后调用API,

class Test {

     public List<TestValue> testValues;
}

用户您的Model类,这仅出于示例目的。

答案 1 :(得分:0)

通常您可以将其解析为

String response = "[{"Id": 2293,"Name": "Dr.","Active": true},{"Id": 2305,"Name": "Mr.","Active": true},{"Id": 2315,"Name": "Mrs.","Active": true}]";
    try {
        JSONArray ja = new JSONArray(response);
        for (int i = 0; i < ja.length(); i++) {
            JSONObject jo = ja.getJSONObject(i);
            String id = jo.getString("Id");
            String name = jo.getString("Name");
            String active = jo.getString("Active");
        }
    } catch (JSONException e) {
        e.printStackTrace();
    }

如果您想使用Model Class进行解析,那么您的Model Class将用于Retrofit

 class Response
{

    @SerializedName("Id")
    @Expose
    private String id;

    @SerializedName("Name")
    @Expose
    private String name;

    @SerializedName("Active")
    @Expose
    private String active;

}

并定义用于此类改造的回调

Call<List<Meeting>> getMeetings(@Field String data );

希望这会有所帮助