Gson 报空指针...死活搞不明白怎么回事,求指点~~ - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
Amarok

Gson 报空指针...死活搞不明白怎么回事,求指点~~

  •  
  •   Amarok Dec 21, 2016 13509 views
    This topic created in 3414 days ago, the information mentioned may be changed or developed.
    20 replies    2016-12-21 13:30:46 +08:00
    Amarok
        1
    Amarok  
    OP
       Dec 21, 2016
    String jsOnText= jsonStringTool.Optimization(s);
    Log.e(TAG, jsonText);


    Gson detailGson = new Gson();

    PostingExample postingExample = detailGson.fromJson(jsonText,PostingExample.class);
    String id = postingExample.getPostings().get(1).getID();
    String pID = postingExample.getPostings().get(1).getPid();

    String COntents= postingExample.getPostings().get(1).getContents();
    Map<String, Object> map = new HashMap<String, Object>();
    map.put("id", id);
    map.put("pID", pID);


    map.put("Contents", Contents);

    log 出来的 json 字符串没问题...到操作 get ( 1 )的时候就报空指针...
    Amarok
        2
    Amarok  
    OP
       Dec 21, 2016
    getPostings().size()就报空指针...T.T
    hinkal
        3
    hinkal  
       Dec 21, 2016 via Android
    你这个代码没贴全, PostingExample 的类结构呢
    xuhaoyangx
        4
    xuhaoyangx  
       Dec 21, 2016
    只给代码不给错误信息,而且你这个代码也不全,只说空指针,可以
    Amarok
        5
    Amarok  
    OP
       Dec 21, 2016
    还没发完就被老板叫过去了....回来补上代码....

    PostingExample.class
    public class PostingExample {
    private List<PostingDetail> Postings;

    public List<PostingDetail> getPostings() {
    return Postings;
    }

    public void setPostings(List<PostingDetail> postings) {
    Postings = postings;
    }

    }


    PostingDetail .class
    public class PostingDetail {
    private String FocusName;
    private String status;
    private String sportsName;
    private String ptype;
    private String UserName;
    private String ID;
    private String postType;
    private String baseTitle;
    private String fixedTitle;
    private String sportstypeName;
    private String collection;
    private String sendTime;
    private String pid;
    private String titleimg;
    private String contents;

    public String getID() {
    return ID;
    }
    br /> public void setID(String ID) {
    this.ID = ID;
    }

    public String getBaseTitle() {
    return baseTitle;
    }

    public void setBaseTitle(String baseTitle) {
    this.baseTitle = baseTitle;
    }

    public String getFixedTitle() {
    return fixedTitle;
    }

    public void setFixedTitle(String fixedTitle) {
    this.fixedTitle = fixedTitle;
    }

    public String getCollection() {
    return collection;
    }

    public void setCollection(String collection) {
    this.collection = collection;
    }

    public String getSendTime() {
    return sendTime;
    }

    public void setSendTime(String sendTime) {
    this.sendTime = sendTime;
    }

    public String getStatus() {
    return status;
    }

    public void setStatus(String status) {
    this.status = status;
    }

    public String getPid() {
    return pid;
    }

    public void setPid(String pid) {
    this.pid = pid;
    }

    public String getTitleimg() {
    return titleimg;
    }

    public void setTitleimg(String titleimg) {
    this.titleimg = titleimg;
    }

    public String getFocusName() {
    return FocusName;
    }

    public void setFocusName(String focusName) {
    FocusName = focusName;
    }

    public String getSportstypeName() {
    return sportstypeName;
    }

    public void setSportstypeName(String sportstypeName) {
    this.sportstypeName = sportstypeName;
    }

    public String getSportsName() {
    return sportsName;
    }

    public void setSportsName(String sportsName) {
    this.sportsName = sportsName;
    }

    public String getPtype() {
    return ptype;
    }

    public void setPtype(String ptype) {
    this.ptype = ptype;
    }

    public String getUserName() {
    return UserName;
    }
    Amarok
        6
    Amarok  
    OP
       Dec 21, 2016
    jsonText :
    {
    "Posting": [
    {
    "UserName": "小袁",
    "FocusName": "衰神",
    "status": "未审核",
    "sportsName": "网球",
    "ptype": "原创",
    "ID": "11",
    "sportstypeName": "竞技球类",
    "baseTitle": "小米手环 2 开箱及与小米手环 1 对比",
    "fixedTitle": "小米哈哈 666",
    "seen": "900",
    "collection": "170",
    "sendTime": "08 27 2016 11:11AM",
    "pid": "20160827111111",
    "titleimg": "http://imageqiniu.xxxxxbbs.com/FrtK2K9JqwoE6xhYWRPFv9tIZym4?watermark/1/image/aHR0cDovLzd4c2N3NS5jb20wLnowLmdsYi5xaW5pdWNkbi5jb20vd2F0ZXJtYXJrLnBuZw==/gravity/South/dy/5",
    "Contents": "aaa"
    }
    ]
    }
    Amarok
        7
    Amarok  
    OP
       Dec 21, 2016
    @hinkal 贴上了....谢谢~
    CFO
        8
    CFO  
       Dec 21, 2016 via Android
    实体类还是用 GsonFormat 生成吧 靠谱
    Amarok
        9
    Amarok  
    OP
       Dec 21, 2016
    @xuhaoyangx 太着急了刚刚,已经贴上了.....谢谢~
    sjn9588
        10
    sjn9588  
       Dec 21, 2016
    postingExample.getPostings()返回的 Postings 是 null 吧?
    Ouyangan
        11
    Ouyangan  
       Dec 21, 2016
    我想说你为什么不把反序列化出来的对象打印出来呢?
    shakespaces
        12
    shakespaces  
       Dec 21, 2016
    你这个类方法没看到和 content 相关的东西啊
    sorra
        13
    sorra  
       Dec 21, 2016
    一个叫 Posting ,一个叫 Postings ,不匹配啊
    xuhaoyangx
        14
    xuhaoyangx  
       Dec 21, 2016
    我怎么感觉的你的 json 有问题呢。。
    xuhaoyangx
        15
    xuhaoyangx  
       Dec 21, 2016   2
    private List<PostingDetail> Postings
    但是你的 json 那个数组名字是 Posting
    Amarok
        16
    Amarok  
    OP
       Dec 21, 2016
    @sjn9588 对...是 null
    sjn9588
        17
    sjn9588  
       Dec 21, 2016   1
    Amarok
        18
    Amarok  
    OP
       Dec 21, 2016
    @xuhaoyangx 啊啊啊啊啊我瞎了.....这么低级的问题,捂脸......
    pubby
        19
    pubby  
       Dec 21, 2016
    @SerializedName("Posting")
    private List<PostingDetail> Postings;

    名字不一致没关系,上面加个注解也能解决
    wanttofly
        20
    wanttofly  
       Dec 21, 2016
    话说不用 GsonFormat 吗?应该不会出现变量名这个问题了啊。。
    About     Help     Advertise     Blog     API     FAQ     Solana     5771 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 66ms UTC 07:36 PVG 15:36 LAX 00:36 JFK 03:36
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86