失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > Json对象(数组)与Java对象(集合)的相互转换

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

时间:2023-03-22 20:32:47

相关推荐

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

1.Json

JSON(JavaScriptObject 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坐标:

<dependency><groupId>net.sf.json-lib</groupId><artifactId>json-lib-ext-spring</artifactId><version>1.0.2</version></dependency>

创建一个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 --> javaUser 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 --> jsonArrayList<User> 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 --> javaList list = (List) JSONArray.toCollection(jsonArray);System.out.println(list);

3.FastJson

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

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

<dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.79</version></dependency>

3.1 对象转换

//java --> jsonString feiji = JSON.toJSONString(new User(1, "feiji", 22));System.out.println(feiji);//json --> javaString 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 --> javaString jsonString = "[{\"id\":1,\"name\":\"zhangsan\",\"age\":18}," +"{\"id\":2,\"name\":\"lisi\",\"age\":20}]";List<User> 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}

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

如果觉得《Json对象(数组)与Java对象(集合)的相互转换》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。