美文网首页
属性重命名 @SerializedName

属性重命名 @SerializedName

作者: sirai | 来源:发表于2019-04-09 10:09 被阅读0次
    • 直接用 JSONObject: 对象 ;JSONArray:数组 ;JSONStringer:String对象。这样一层一层的解析。
    • 用开源库,我采用的是google提供的GSON,这个方法好,前提得按照json的结构把实体类写好。写好之后就完美了。
    • 在as中,按照project structure-> dependencies->点击右边的+号->library dependency->输入gson。基本点击第一条选项,然后等他创建完,就可以使用GSON开源库了。
    • 然后就是创建相对应的实体类了,我用过网站和插件,都好,不过个人感觉插件更优,如果结构比较简单,也可以自己写。附上网站链接除了生成实体类还能检查json文本格式的网站。as插件就是GsonfFormat,可以自己选择生成的哪些对象。但是有时候json里命名和我们自己的变量命名有差别,这就要使用到属性重命名 @SerializedName ,如
    "cond":{"txt":"多云"}
    "cond":{"txt_d":"晴"}
    

    这时候 @SerializedName 还有一个格式,这时候mTxt可以被当作txt或txt_d了,具体是谁取决于遇到谁了。

    @SerializedName(value = "txt", alternate = {"txt_d"})
    public String mTxt;
    

    然后就是解析了,fromJson里第一个是需要解析的json文本,String格式,后面是实体类,这样之后json里的字段就和实体类里面的变量和其他类一一对应了。

    Gson gson = new Gson();
    CityRoot cityRoot = gson.fromJson(resultCity, CityRoot.class);
    

    然后想怎么操作从网络上获取的资源就任我们了。

    相关文章

      网友评论

          本文标题:属性重命名 @SerializedName

          本文链接:https://www.haomeiwen.com/subject/qpwviqtx.html