如何从android中的php关联数组解析JSON响应?
Posted
技术标签:
【中文标题】如何从android中的php关联数组解析JSON响应?【英文标题】:how to parse JSON response from php associated array in android? 【发布时间】:2019-03-01 04:17:57 【问题描述】:我有一个对 php 服务器的 android 请求,它以 JSON 格式发送一个关联的数组,如何通过改造或 volley 将其解析为模型或其他方式? 像这样的 JSON 响应:
"d":
"240":
"title": "First floor",
"rooms":
"246":
"title": "kitchen",
"type": 1,
"hid": 246
,
"251":
"title": "room56",
"type": 3,
"hid": 251
,
"389":
"title": "Second floor",
"rooms":
"390":
"title": "First room",
"type": 2,
"hid": 390
【问题讨论】:
你只是想把它变成一个数组?json_decode($array, true);
***.com/questions/6773474/…
正确拼写解析并格式化 JSON,使其可读
【参考方案1】:
如果你使用 volley,你可以使用 JSONRequest 获取一个 json 对象(或者如果你使用 Retrofit,你可以将 String 转换为 json 对象),然后使用我的代码获取数组。 (如果您有任何问题,请发表评论或联系我:nhat.thtb@gmail.com)
protected ArrayList<Floor> parse(JSONObject json_response)
ArrayList<Floor> list_floor = new ArrayList<>();
try
JSONObject json_d = json_response.getJSONObject("d");
Iterator<String> iter = json_d.keys();
while (iter.hasNext())
String key = iter.next();
JSONObject json_floor = json_d.getJSONObject(key);
Floor floor = new Floor();
floor.parse(json_floor);
list_floor.add(floor);
catch (Exception e)
return list_floor;
public class Entity
public void parse(JSONObject json)
public class Floor extends Entity
private String mTitle;
private ArrayList<Room> mListRoom;
@Override
public void parse(JSONObject json)
try
mTitle = json.getString("title");
mListRoom = new ArrayList<>();
JSONObject js_room = json.getJSONObject("rooms");
Iterator<String> iter = js_room.keys();
while (iter.hasNext())
String key = iter.next();
JSONObject js_room_tmp = json.getJSONObject(key);
Room room = new Room();
room.parse(js_room_tmp);
mListRoom.add(room);
catch (Exception e)
// setter and getter
public class Room extends Entity
private String mTitle;
private int mType;
private int mHid;
@Override
public void parse(JSONObject json)
try
mTitle = json.getString("title");
mType = json.getInt("type");
mHid = json.getInt("hid");
catch (Exception e)
// setter and getter
【讨论】:
非常感谢......它工作......但我认为如果json响应比这复杂,它很难建立模型...... 我不这么认为。如果您在构建模型时遇到任何问题,请随时与我联系。以上是关于如何从android中的php关联数组解析JSON响应?的主要内容,如果未能解决你的问题,请参考以下文章
如何循环访问和访问多维和关联数组中的各种元素? PHP,JSON 或 XML
如何从 $.getJSON 调用以 print_r() 方式打印关联数组?
如何仅将一些选定的 Json 数组和 Json 对象从 Url 解析到 android 设备