小编这次要给大家分享的是如何使用java JSON解析库Alibaba Fastjson,文章内容丰富,感兴趣的小伙伴可以来了解一下,希望大家阅读完这篇文章之后能够有所收获。
Json是一种轻量级的数据交换格式,应该在一个程序员的开发生涯中是常接触的。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。
现在主流的对象与 JSON 互转的工具很多,这里介绍的是阿里巴巴的开源库 - Fastjson。Fastjson是一个Java库,可用于将Java对象转换为其JSON表示。它还可用于将JSON字符串转换为等效的Java对象。Fastjson可以处理任意Java对象,包括您没有源代码的预先存在的对象。
验证json数据格式网址:http://tools.jb51.net/code/json
Fastjson 的优点
Fastjson依赖
<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.47</version> </dependency>
FastJson下载地址:https://github.com/alibaba/fastjson
json格式
json数组格式:
对象数组格式:
[ {alt: '[坏笑]', src:'http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/50/pcmoren_huaixiao_org.png'}, {alt: '[舔屏]', src:'http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/40/pcmoren_tian_org.png'}, {alt: '[污]', src: 'http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/3c/pcmoren_wu_org.png'} ]
json对象格式:
{ "ID": 1001, "name": "张三", "age": 24 }
因为之前在开发中遇到过这种json转换,当时用的是jackson,就觉得很麻烦,最近在写一个小项目时接触到Fastjson时,就觉得这个非常好用。
一般实际开发过程中,都是从前台拼接后传递过来的json字符串,下面测试就直接用的java字符串定义的json格式字符串(视情况而定)。
转换一定需要先添加依赖或者jar包才能使用。
把字符串json数组转为json格式数组取值:
String str = "[\"张三\",\"18\",\"宜昌\"]"; JSONArray array = JSONArray.parseArray(str); System.out.println(array.get(0)); System.out.println(array.get(1)); System.out.println(array.get(2)); System.out.println();
输出结果
字符串json对象数组转为json格式或者list对象
返回list集合对象时后面需要加上返回对象类
List<User> array2 = JSONArray.parseArray(str1, User.class);
String str1 = "[" + " {\"name\": \"张三\", \"age\": 24, \"city\": \"宜昌\"}," + " {\"name\": \"李四\", \"age\": 25, \"city\": \"宜昌\"}," + " {\"name\": \"王五\", \"age\": 22, \"city\": \"宜昌\"}" + "]"; JSONArray array1 = JSONArray.parseArray(str1); System.out.println(array1.get(0).toString()); System.out.println(array1.get(1).toString()); System.out.println(array1.get(2).toString()); System.out.println(); List<User> array2 = JSONArray.parseArray(str1, User.class); for(int i = 0; i < array2.size(); i++) { System.out.println("姓名:"+array2.get(i).getName()+", 年龄:"+array2.get(i).getAge()+", 地址:"+array2.get(i).getCity()); }
输出结果
字符串json对象格式转为实体对象
String str2 = "{\"name\": \"张三\", \"age\": 24, \"city\": \"宜昌\"}"; User user = JSONArray.parseObject(str2, User.class); System.out.println("姓名:"+user.getName()+", 年龄:"+user.getAge()+", 地址:"+user.getCity());
输出结果:
json字符串转为json格式
String str2 = "{\"name\": \"张三\", \"age\": 24, \"city\": \"宜昌\"}"; JSONObject json = JSONObject.parseObject(str2); String name = json.getString("name"); String age = json.getString("age"); String city = json.getString("city"); System.out.println(name); System.out.println(age); System.out.println(city);
运行结果:
全部代码:
测试类:
import java.util.List; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; public class JsonArray { public static void main(String[] args) { String str = "[\"张三\",\"18\",\"宜昌\"]"; JSONArray array = JSONArray.parseArray(str); System.out.println(array.get(0)); System.out.println(array.get(1)); System.out.println(array.get(2)); System.out.println(); String str1 = "[" + " {\"name\": \"张三\", \"age\": 24, \"city\": \"宜昌\"}," + " {\"name\": \"李四\", \"age\": 25, \"city\": \"宜昌\"}," + " {\"name\": \"王五\", \"age\": 22, \"city\": \"宜昌\"}" + "]"; JSONArray array1 = JSONArray.parseArray(str1); System.out.println(array1.get(0).toString()); System.out.println(array1.get(1).toString()); System.out.println(array1.get(2).toString()); System.out.println(); List<User> array2 = JSONArray.parseArray(str1, User.class); for(int i = 0; i < array2.size(); i++) { System.out.println("姓名:"+array2.get(i).getName()+", 年龄:"+array2.get(i).getAge()+", 地址:"+array2.get(i).getCity()); } System.out.println(); String str2 = "{\"name\": \"张三\", \"age\": 24, \"city\": \"宜昌\"}"; User user = JSONArray.parseObject(str2, User.class); System.out.println("姓名:"+user.getName()+", 年龄:"+user.getAge()+", 地址:"+user.getCity()); System.out.println(); JSONObject json = JSONObject.parseObject(str2); String name = json.getString("name"); String age = json.getString("age"); String city = json.getString("city"); System.out.println(name); System.out.println(age); System.out.println(city); } }
测试类对应的User类:
public class User { private String name; private String city; private Integer age; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getCity() { return city; } public void setCity(String city) { this.city = city; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public User(String name, String city, Integer age) { super(); this.name = name; this.city = city; this.age = age; } }
测试结果:
看完这篇关于如何使用java JSON解析库Alibaba Fastjson的文章,如果觉得文章内容写得不错的话,可以把它分享出去给更多人看到。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。