Java 解析来自VKAPI的JSON响应

Java 解析来自VKAPI的JSON响应,java,android,json,Java,Android,Json,我试图解析来自JSON vk api wall.get(示例响应)方法的响应,但遇到了问题 这是JSON结构的类 public class Wall implements Serializable { private static final long serialVersionUID = 1L; public long from_id; public long to_id; public long date; public String text;

我试图解析来自JSON vk api wall.get(示例响应)方法的响应,但遇到了问题

这是JSON结构的类

public class Wall implements Serializable {
    private static final long serialVersionUID = 1L;
    public long from_id;
    public long to_id;
    public long date; 
    public String text;
    public long id;
    public String online;

    public static Wall parse(JSONObject o) throws JSONException {
        Wall wm = new Wall();
        wm.id = o.getLong("id");
        wm.from_id = o.getLong("from_id");
        wm.to_id = o.getLong("to_id");
        wm.date = o.getLong("date");
        wm.online = o.getString("online");
        wm.text = o.getString("text");
        return wm;
    }
我尝试解析JSON响应

protected ArrayList<Wall> parse(String source) throws JSONException{

        ArrayList<Wall> result = new ArrayList<Wall>();
        JSONObject js = new JSONObject(source);
        JSONArray response = new js.getJSONArray("items"); ///this throws exception
        for (int i=0; i< response.length(); i++){
            Wall wall = new Wall();
            JSONObject jo = response.getJSONObject(i);
            wall.from_id = jo.getLong("from_id");
            wall.id = jo.getLong("id");
            wall.to_id = jo.getLong("to_id");
            wall.date = jo.getLong("date");
            wall.online = jo.getString("online");
            wall.text = jo.getString("text");
        }
        return result;
        }
    }
受保护的ArrayList解析(字符串源代码)抛出JSONException{
ArrayList结果=新建ArrayList();
JSONObject js=新的JSONObject(源);
JSONArray response=new js.getJSONArray(“items”);///这会引发异常
对于(int i=0;i
您的json数组名称是
响应
不是
,请使用:

JSONArray response = new js.getJSONArray("response");
而不是:

JSONArray response = new js.getJSONArray("items");
您没有将
对象添加到
结果

 for (int i=0; i< response.length(); i++){
        Wall wall = new Wall();
        JSONObject jo = response.getJSONObject(i);
        wall.from_id = jo.getLong("from_id");
        wall.id = jo.getLong("id");
        wall.to_id = jo.getLong("to_id");
        wall.date = jo.getLong("date");
        wall.online = jo.getString("online");
        wall.text = jo.getString("text");
        result.add(wall);
    }
for(int i=0;i
试试这个库,它在json的web服务响应中帮助了我,它很容易使用:


希望这对您有所帮助

有什么问题?你没有发布你的问题。也请张贴您的日志。