JSON串转化为List




JSON的两种格式

第一种:
[[value1, value2, value3, value4], [value1, value2, value3, value4], [value1, value2, value3, value4], [value1, value2, value3, value4]]
按照顺序将每个字段的值存储,不存储字段名。
注意:[]标识每一个对象,需要知道[]中每一个值表示的字段。
后面我们称之为方括号格式

第二种:
[{column1: value1, column2: value2, column3: value3, column4: value4}, {column1: value1, column2: value2, column3: value3, column4: value4}, {column1: value1, column2: value2, column3: value3, column4: value4}, {column1: value1, column2: value2, column3: value3, column4: value4}]
将字段名与字段值一并存储。
注意:{}标识每一个对象,按照"字段名":字段值的方式存储信息
后面我们称之为花括号格式




“方括号”格式转化

String jsonString = “[[1,"zhangsan","male",18,"Beijing"],[2,"lisi","female",18,"Shanghai"]]”

jsonString:字段表示从左到右依次为id,name,sex,age,city。

第一种方式:

List<List<Object>> list = JSON.parseObject([jsonString], new TypeReference<List<List<Object>>>() {});

将JSON字符串看成是list嵌套list的格式,即List< List< Object> >,获取到list之后,循环list,依次获取内层List< Object >,通过get(0)获取id,get(1)获取name……。

第二种方式:

List<StudentAttr > list = JSON.parseArray[jsonString], StudentAttr .class);

public static class StudentAttr extends ArrayList{

    public StudentAttr () {
        super();
    }

    public StudentAttr (Collection c) {
        super(c);
    }

    public StudentAttr (int initialCapacity) {
        super(initialCapacity);
    }
		
    public String getId() {
        return get(0).toString();
    }
}

自定义类StudentAttr 继承自ArrayList,将StudentAttr 当成是List< Object >
进行处理。
可以在StudentAttr 类内部定义方法getId()获取id,如代码所示,也可以不进行封装,直接get(0)获取id。




“花括号”格式转换

String jsonString = “[{"id":1, "name": "zhangsan", "sex": "male", "age": 18, :city": "Beijing"},{"id": 2, "name": "lisi", "sex": "female", "age": 18, "city": "Shanghai"}]”

jsonString:以{字段名:值, 字段名:值,……}的方式表示。

 List<Student> studentList = JSONObject.parseArray(jsonString, Student.class);

将JSON直接转化为对应的对象list,可以直接调用对象的set,get方法进行一系列操作。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值