JSON映射到Java返回null值

时间:2015-06-21 06:48:27

标签: java json

我正在尝试使用gson将JSON映射到Java。我在编写逻辑时成功,但在获取输出时不成功。发布的是我的JSON和Java文件。任何帮助都将受到高度赞赏。

这是我得到的输出

value:null

以下是.json文件的代码

{
    "catitem": {
        "id": "1.196289",
        "src": "http://feeds.reuters.com/~r/reuters/MostRead/~3/PV-SzW7Pve0/story06.htm",
        "orig_item_date": "Tuesday 16 June 2015 07:01:02 PM UTC",
        "cat_id": "1",
        "heding": "Putin says Russia beefing up nuclear arsenal",
        "summary": "KUvdfbefb bngfb",
        "body": {
            "bpart": [
                "KUBINKA,dvdvdvdvgbtgfdnhfbnrtdfbcv dbnfg"
            ]
        }
    }
}

发布的是我的.java文件

public class offc {

    public static void main(String[] args) {
        JsonReader jr = null;

        try {
            jr = new JsonReader(new InputStreamReader(new FileInputStream(
                    "C:\\Users\\rishii\\IdeaProjects\\rishi\\src\\file3.json")));

        } catch (Exception ex) {
            ex.printStackTrace();
        }
        Doll s = new Doll();

        Gson g = new Gson();
        Doll sr1 = g.fromJson(jr, Doll.class);
        System.out.println(sr1);
    }
}

以下是Doll.java的代码

class Doll {

    private catitem ct;

    public void setCt(catitem ct) {

        this.ct = ct;
    }

    public catitem getCt() {
        return ct;
    }

    @Override
    public String toString()

    {
        return "value:" + ct;
    }

    class catitem {
        private String id;
        private String src;
        private String orig_item_date;
        private String cat_id;
        private String heding;
        private String summary;
        private body ber;

        catitem(String id, String src, String orig_item_date, String cat_id, String heding,
                String summary) {
            this.id = id;
            this.src = src;
            this.orig_item_date = orig_item_date;
            this.cat_id = cat_id;
            this.heding = heding;
            this.summary = summary;
        }

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

        public String getId() {
            return id;
        }

        public void setSrc(String src) {
            this.src = src;
        }

        public String getSrc() {
            return src;
        }

        public void setOrig_item_date(String Orig_item_date) {
            this.orig_item_date = Orig_item_date;
        }

        public String getOrig_item_date() {

            return getOrig_item_date();
        }

        public void setCat_id(String cat_id) {

            this.cat_id = cat_id;
        }

        public String getCat_id() {
            return cat_id;
        }

        public void setHeding(String heding) {
            this.heding = heding;
        }

        public String getHeding() {
            return heding;
        }

        public void setSummary(String summary) {
            this.summary = summary;
        }

        public String getSummary() {
            return summary;
        }

        public void setBer(body ber) {
            this.ber = ber;
        }

        public body getBer() {
            return ber;
        }

        @Override
        public String toString() {
            return "id:" + id + "cat_id" + cat_id + "summary" + summary + "orig_date"
                    + orig_item_date + "heding" + heding;
        }
    }

    class body {
        private String bpart;

        public void setBpart(String r) {

            this.bpart = r;
        }

        public String getBpart() {

            return bpart;
        }

        @Override
        public String toString() {

            return "hiii";
        }
    }

}

1 个答案:

答案 0 :(得分:1)

问题出在Doll类中,你有一个字段ct但是在json catitem中。将字段ct重命名为catitem,或者如果您使用Gson,请在归档@SerializedName("catitem")上使用ct,这样就可以了。