JsonArray转换为List

JsonArray转换为List

服务器返回数据时返回的字符串不是对象而是一个数组时,我们在解析时使用到的Javabean时,不能直接使用Bean.class的方式来使用Gson直接转换为对象,服务器的同事说只能使用手工解析了,当时一脸懵逼的感觉,下面的字符串是精简过了的,正常的字符串有差不多一百个字段,办法总是有的,程序员的习惯,只是在每一次做体力活的时候,总是有一种想法,就不能简单点吗?下班了我还有去找女票。。

这时服务器返回给我们的数组中的对象内容生成的bean对象
public class JsonBean {

    /**
     * content : 呼呼
     * createTime : 1499397296000
     * nickname : 朋
     * headUrl : http://112.74.33.74/file/upload/img/2017/07/41f484ce163a440f988ed2cbcd159703.jpeg
     * uid : 5979a69a628b4db9a6ee4180d979b1b7
     * level : 1
     * type : Default
     * id : 3fa719e0aa9b4000a5616928d1c1b06b
     * roleType : Vip
     * roleTypeMsg : 会员
     * contentType : Text
     * askName :
     * askContent :
     */

    private String content;
    private long createTime;
    private String nickname;
    private String headUrl;
    private String uid;
    private int level;
    private String type;
    private String id;
    private String roleType;
    private String roleTypeMsg;
    private String contentType;
    private String askName;
    private String askContent;


}

解析的关键代码为:使用Gson中提供的类型封装对象TypeToken对象来封装一下list对象,这时就可以直接解析为对象
new TypeToken<List<JsonBean>>() {
        }.getType()

下面是关键代码:
    
    @Test
    public void testPaserJson() throws Exception {
        Gson gson = new Gson();
        List<JsonBean> list = gson.fromJson(str, new TypeToken<List<JsonBean>>() {
        }.getType());

        System.out.print(list.get(0).getRoleTypeMsg());
    }


下面是我们要解析的字符串:
[
{
"content":"呼呼",
"createTime":1499397296000,
"nickname":"朋",
"headUrl":"http:\/\/112.74.33.74\/file\/upload\/img\/2017\/07\/41f484ce163a440f988ed2cbcd159703.jpeg",
"uid":"5979a69a628b4db9a6ee4180d979b1b7",
"level":1,
"type":"Default",
"id":"3fa719e0aa9b4000a5616928d1c1b06b",
"roleType":"Vip",
"roleTypeMsg":"会员",
"contentType":"Text",
"askName":"",
"askContent":""
},
{
"content":"飞飞飞",
"createTime":1499828614000,
"nickname":"小巫巫巫巫",
"headUrl":"https:\/\/ss3.bdstatic.com\/70cFv8Sh_Q1YnxGkpoWK1HF6hhy\/it\/u=3232491161,1232997938&fm=117&gp=0.jpg",
"uid":"ac22f763434741c2b2737a6d9ffff909",
"level":1,
"type":"Default",
"id":"3563db07cfb64b61b94da46b13cdbf04",
"roleType":"Vip",
"roleTypeMsg":"会员",
"contentType":"Text",
"askName":"",
"askContent":""
}]



  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值