栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Json对象(数组)与Java对象(集合)的相互转换

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Json对象(数组)与Java对象(集合)的相互转换

1.Json

JSON(JavaScript Object Notation, JS对象简谱)是一种轻量级的数据交换格式,独立于编程语言的文本格式来存储和表示数据。Json数据的格式更加的简单,易读,前后端分离的项目主要就是使用json格式就行数据的传输。

Json主要有两种格式,一种是json对象,另一种就是json数组。

对象是一个无序的“‘名称/值’对”集合。一个对象以{左括号开始,}右括号结束。每个“名称”后跟一个:冒号;“‘名称/值’ 对”之间使用,逗号分隔,例如:

{
  "id": 1,
  "name": "zhangsan",
  "age": 18
}

和普通的 JS 数组一样,JSON 表示数组的方式也是使用方括号 [],例如:

[
  {
    "id": 1,
    "name": "zhangsan",
    "age": 18
  },
  {
    "id": 2,
    "name": "lisi",
    "age": 20
  }
]

这里主要介绍两种json数据和Java相互转换的方式:JDK和阿里巴巴公司开发的fastjson

2.JDK

导入相应的Maven坐标:


       net.sf.json-lib
       json-lib-ext-spring
       1.0.2

创建一个Java对象(User)

public class User {
    int id;
    String name;
    int age;
    //生成对应的get、set、有参、无参、toString方法
}
2.1 JSONObject

JSONObject主要用于处理对象使用(也可以用来处理数组)

        //java对象转换为json对象
        JSONObject feiji = JSONObject.fromObject(new User(1, "feiji", 22));
        System.out.println("json:"+feiji);
        //json --> java
        User user = (User) JSONObject.toBean(feiji, User.class);
        System.out.println("java:"+user);
        //处理数组
        JSONArray jsonObject1 = JSONArray.fromObject(jsonString);
        User[] list = (User[]) jsonObject1.toArray(jsonObject1, User.class);

输出结果如下:

json:{"age":22,"id":1,"name":"feiji"}
java:User{id=1, name='feiji', age=22}
2.2 JSONArray

JSONArray主要用于处理数组

        //java --> json
        ArrayList list1 = new ArrayList<>();
        list1.add(new User(1,"zhangsan",22));
        list1.add(new User(2,"lisi",23));
        JSONArray jsonArray = new JSONArray();
        jsonArray.add(list1);
        System.out.println(jsonArray);
        //json --> java
        List list = (List) JSONArray.toCollection(jsonArray);
        System.out.println(list);
3.FastJson

FastJson是阿里巴巴开源的Java对象和JSON格式字符串的快速转换的工具库,fastjson是目前java语言中最快的json库,比自称最快的jackson速度要快。

使用前,首先要引入对应的Maven坐标:

        
            com.alibaba
            fastjson
            1.2.79
        
3.1 对象转换
        //java --> json
        String feiji = JSON.toJSONString(new User(1, "feiji", 22));
        System.out.println(feiji);

        //json --> java
        String us = "{"id":1,"name":"zhangsan","age":18}";
        User user = JSON.parseObject(feiji, User.class);
        Object parse = JSON.parse(us);
        System.out.println(user);
        System.out.println(parse);
toJSONString和parseObject(parse)方法提供了很多的重载方式,供我们使用。
3.2 数组转换
        //json --> java
        String jsonString = "[{"id":1,"name":"zhangsan","age":18}," +
                "{"id":2,"name":"lisi","age":20}]";
        List users = JSON.parseArray(jsonString, User.class);
        for (int i = 0; i < users.size(); i++) {
            System.out.println(users.get(i));
        }

结果如下:

User{id=1, name='zhangsan', age=18}
User{id=2, name='lisi', age=20}

这里只是写了一部分功能(工作中用到,正好记录一下)。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1035508.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号