JSON以及JSON的各种转换

JSON的本质就是一个字符串,只不过按照了特定的格式,所以JSON也是一种数据格式。
任何语言都可以使用JSON
JSON有两种语法:一种是对象,一种是数组

JSON对象

JSON对象是以键值对的形式存在{key:value,key:value…}

JSON数组

JSON数组是用[]包裹起来的结构,取值方式通过索引来获取,值的类型可以是数字、字符串、数组、对象等。
括号中包含的多为JSON对象;

原生JSON解析

JSON字符串转换成JSON对象

JSONObject json = new JSONObject(JSONstr);

  • 思考如何将JSON字符串转成JavaBean对象
  1. 不带对象名的方法{key:value,key2:vallue2}

    1. 将JSON字符串转成JSON对象
    2. 通过get(xxx)方法,获取JSON中各个属性的值
    3. 创建javabean对象
    4. 将获取到的值给Javabean对象赋值
  2. 带对象名的方法{“person1”:{“address”:“深圳市”,“id”:1001,“name”:“Tom”}}

    1. JSONObject json = JSONObject(JsonStr).getJSONObject(“person1”);
    2. 通过get(xxx)方法,获取JSON中各个属性的值
    3. 创建javabean对象
    4. 将获取到的值给Javabean对象赋值

解析数组

[{“id”:1001,“name”:“Tom”,“address”:“北京市”},{“id”:1002,“name”:“Mary”,“address”:“上海市”}]

  1. 将jsonStr转成JSON数组
    JSONArray jsonArray = new JSONArray(jsonStr);
  • 思考如何将jsonStr转成一个数组或集合
    • jsonStr转成JSONArray
    • 遍历JSON数组,获取每一个JSON对象
    • 使用jsonStr转javabean的方法,将每一个Json对象转成javabean对象
    • 将转成的对象放入自己想要放入的地方
JSONArray jsonArrayy = new JSONArray(jsonStr);
List<People> list = new ArrayList<>();
for(int i = 0; i < jsonArray.length(); i++) {
    JSONObject json = jsonArray[i];
    int id = json.get("id");
    String name = json.get("name");
    String address = json.get("address");
    People people = new People();
    people.setId(id);
    people.setName(name);
    people.setAddress(address);
   list.add(people);


}

生成JSON

即将Javabean对象或Javabean对象集合转成JSON对象或JSON数组

          User user1 = new User();
          User user2 = new User();

          user1.setName("张三");
          user1.setAge(18);
          user2.setName("李四");
          user2.setAge(20);       

          List<User> list = new ArrayList<>();
          list.add(user1);
          list.add(user2);
          
          System.out.println(new JSONObject(user1));
          System.out.println(new JSONArray(list));

FastJSON解析JSON(最常用)

public static final String toJSONString(Object object); // 将JavaBean序列化为JSON文本 
public static final Object parse(String text); // 把JSON文本parse为JSONObject或者JSONArray 
public static final JSONObject parseObject(String text)// 把JSON文本转换成JSONObject   
public static final <T> T parseObject(String text, Class<T> clazz); // 把JSON文本转换为JavaBean
public static final JSONArray parseArray(String text); // 把JSON文本转换成JSONArray 
public static final <T> List<T> parseArray(String text, Class<T> clazz); //把JSON文本转换成JavaBean集合 

总结

  1. JSON字符串,JavaBean转成JSON对象都使用如下方法转化
JSONObject json = new JSONObject(xxxx);

2 JSONArray字符串、集合转JSON数组也类似

JSONArray jsonArr = new JSONArray(xxxx);
  1. JOSN转成JavaBean的方法流程
    1. 使用json.get(“属性名”);获得指定属性的值
    2. 创建一个JavaBean对象,给该对象赋值;
  2. JOSN数组是JSON对象的集合
    通过jsonArray.get(index); 来获得JSON对象
  3. JSON数组转集合,流程
    获得JSON对象,再使用第3条的方法创建JavaBean对象,最后将所有的JavaBean对象放入数组中
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值