-1

我是网络服务的新手,我是第一次使用 gson 库。我能够解析某些简单的 json 字符串,但我被困在这里。这是我的回应

{"message":"Action completed successfully.","results":3,"action":"param","data":[{"title":"test1","id":2,"completeCount":0},{"title":"test2","id":3,"completeCount":0},{"title":"test2","id":3,"completeCount":0}],"success":true}

这就是我试图解析它的方式

Gson gson = new Gson();
Chracter character = gson.fromJson(successResponse, Character.class);

这是我的课

public class Character {


private  List<Detail> data = new ArrayList<Detail>();
private String action ;
private  int results;
private String message;
private Detail detail;


public Character() {

}

public Character(List<Detail> data, String action, int results,
        String message) {
    super();
    this.data = data;
    this.action = action;
    this.results = results;
    this.message = message;
}

public List<Detail> getData() {
    return data;
}

public void setData(List<Detail> data) {
    this.data = data;
}

public String getAction() {
    return action;
}

public void setAction(String action) {
    this.action = action;
}

public int getResults() {
    return results;
}

public void setResults(int results) {
    this.results = results;
}

public String getMessage() {
    return message;
}

public void setMessage(String message) {
    this.message = message;
}


public Detail getDetail() {
    return detail;
}

public void setDetail(Detail detail) {
    this.detail = detail;
}

public class Detail{

    private String title;
    private int id;
    private int completeCount ;


    public Detail() {

    }

    public Detail(String title, int id, int completeCount) {
        super();
        this.title = title;
        this.id = id;
        this.completeCount = completeCount;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public int getId() {
        return Id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public int getCompleteCount() {
        return completeCount;
    }

    public void setCompleteCount(int completeCount) {
        this.completeCount = completeCount;
    }




}





}
4

1 回答 1

2

尝试以下课程以获得回应。

public class Character {

    /**
     * Take array of class when you found "[","]" inside json response
     */
    ArrayList<Data> data;

    /**
     * take normal values as members
     */
    String action;
    int results;
    String message;
    boolean success;

    /**
     * When you will use array, don't forgot to implement empty contructor,
     * which initialize that array
     */
    public Character() {
        data = new ArrayList<Character.Data>();
    }

    /**
     * There will be only "get" methods, no setter method used in GSON bean
     * 
     * @return
     */
    public String getAction() {
        return action;
    }

    public String getMessage() {
        return message;
    }

    public int getResults() {
        return results;
    }

    public boolean getSuccess() {
        return success;
    }

    public ArrayList<Data> getData(){
            return data;
    }

    @Override
    public String toString() {
        String str = "Action : " + action + "\nMessage : " + message
                + "\nResults : " + results + "\nSuccess : " + success;
        str += "\n";
        for (Data d : data) {
            str += "\nTitle : " + d.getTitle();
            str += "\nComplete Count : " + d.getCompleteCount();
            str += "\nId : " + d.getId();
        }
        return str;
    }

    /**
     * as you have => "data":[...] => in your json response, you need to create
     * a class for that
     */
    public class Data {

        /**
         * take normal values as members
         */
        private String title;
        private int id;
        private int completeCount;

        public String getTitle() {
            return title;
        }

        public int getId() {
            return id;
        }

        public int getCompleteCount() {
            return completeCount;
        }
    }

}

输出

要打印输出,请使用以下代码。我已经覆盖了toString()函数。

Gson gson = new Gson();
Character character = gson.fromJson(strResponse, Character.class);
Log.d("Home", character.toString());

08-30 15:36:59.279:DEBUG/Home(10022):操作:参数
08-30 15:36:59.279:DEBUG/Home(10022):消息:操作成功完成。
08-30 15:36:59.279: DEBUG/Home(10022): 结果: 3
08-30 15:36:59.279: DEBUG/Home(10022): Success: true
08-30 15:36:59.279: DEBUG/Home (10022): 标题: test1
08-30 15:36:59.279: DEBUG/Home(10022): Complete Count: 0
08-30 15:36:59.279: DEBUG/Home(10022): Id: 2
08-30 15 :36:59.279:调试/主页(10022):标题:test2
08-30 15:36:59.279:调试/主页(10022):完整计数:0
08-30 15:36:59.279:调试/主页(10022) :ID:3
08-30 15:36:59.279:调试/主页(10022):标题:test2
08-30 15:36:59.279:调试/主页(10022):完整计数:0
08-30 15:36:59.279:调试/主页(10022):ID:3

于 2013-08-30T10:09:13.823 回答