我有一个带动态键值的JSON。例如:
"location_id": {
"0": 0,
"1": 1,
"2404": "Section 9 Shah Alam - 3.085376,101.522716",
"272": "Bukit Jelutong - 3.103953,101.527704",
"545": "Giant Shah Alam - 3.084166,101.549152",
...
}
通常,我对固定键值的处理方法是在POJO类中定义它,如下所示:
JSON:
"location_id": {
"id" : "hehe",
"name": "herpderp",
"location": "Section 9 Shah Alam - 3.085376,101.522716",
...
}
POJO将如下所示:
private String id;
private String name;
private String location;
...
通过使用GsonRequest,它会将JSON解析为POJO。
但是,如何反序列化具有动态键值的JSON?
答案 0 :(得分:1)
如果您有动态键值,则需要手动解析JSON。 例如,执行一个简单的请求,然后在响应回调中解析数据。
JsonObjectRequest request = new JsonObjectRequest(Request.Method.GET, url, null, new Response.Listener<JSONObject>() {
@Override
public void onResponse(final JSONObject response) {
//get a fake property from response
String title = response.optString("title");
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(final VolleyError error) {
//handle errors
}
}
) {
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
//get request headers
}
};
答案 1 :(得分:0)
我明白了。感谢@Mattia回复。
我只需要Map<String, String>
将整个键值对作为String。