JSONObject、 JsonObject、阿里fastJson、谷歌gson区别
JSON:JavaScript Object Notation Java对象表示法
Java中并没有内置的 JSON 解析,需要使用第三方类库。常用的类库如下
一、Gson : 古河开发的JSON 库
二、FastJson :阿里巴巴的JSON 库
三、JackSon : 社区十分活跃
JSONObject 是json 对象,一个键对应一个值,例如: {“key”:"value"}
一、com.alibaba.fastjson.JsonObject(参考)
1.添加fastJson依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.58</version>
</dependency>
2.将 List 对象转换为 Json 格式的String
List<User> users= findAllUser(); String str = JSONObject.toJSONString(users);
3.将 Map 对象转换为 JsonObject
Map<String,Object> map = new HashMap();
map.put("name","zhangsan");
map.put("age","15");
JSONObject jsonObject = new JSONObject(map);
4.将Map 转换为 Json 格式的String 字符串
String jsonStr = JSON.toJSONString(map);
5.将 json 格式的String 字符串转换为 Map
String jsonStr = "{\"name\":\"zhangsan\",\"age\":\"15\"}";
JSONObject jsonObject = JSONObject.parseObject(jsonStr);
Map<String,Object> map = jsonObject;
6. 将 json 格式的字符串转换为 JsonObject
String jsonStr = "{\"name\":\"zhangsan\",\"age\":\"15\"}";
JSONObject jsonObject = JSON.parseObject(jsonStr);
7. 将 json字符串转换为 Java对象
String jsonStr = "{\"name\":\"zhangsan\",\"email\":\"15\"}";
User user = JSON.parseObject(jsonStr,User.class);
8. 将 json 字符串转换为 JSONArray 数组
String jsonStr = "[{\"name\":\"zhangsan\",\"email\":\"zhangsan@qq.com\"},{\"name\":\"lisi\",\"email\":\"lisi@163.com\"}]";
JSONArray array = JSON.parseArray(jsonStr);
for(int i=0;i<array.size();i++){
System.out.println(array.get(i));
}
9. 将Java 对象转换为 json 字符串
User user = new User(11,"wangwu","wangwu@163.com","上海"); String str = JSON.toJSONString(user);
10. 将json 字符串转换为 Java 实体集合
String jsonStr = "[{\"name\":\"zhangsan\",\"email\":\"zhangsan@qq.com\"},{\"name\":\"lisi\",\"email\":\"lisi@163.com\"}]";
List<User> list = JSON.parseArray(jsonStr,User.class);
11. 将 java 对象转换为 JsonObject
User user = new User(11,"wangwu","wangwu@163.com","上海"); JSONObject jsonObject = (JSONObject) JSON.toJSON(user);
二、org.json.JSONObject
1.添加依赖
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20180130</version>
</dependency>
2.Bean 对象转换为 JSONObject
User user = new User(11,"wangwu","wangwu@163.com","上海"); JSONObject jsonObject = new JSONObject(user);
3.Map 集合转换为 JSONObject 对象
Map<String,Object> map = new HashMap();
map.put("name","zhangsan");
map.put("age","15"); JSONObject jsonObject = new JSONObject(map);
4.JSONObject 转换为 Map<String,Object>对象
JSONObject jsonObject = new JSONObject();
jsonObject.toMap();
三、GSON(参考)
1.添加依赖
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.3.1</version>
</dependency>
2.Gson 的两个基础方法
toJson();
fromJson();
3.创建方式一:
// 使用new方法
Gson gson = new Gson(); // toJson 将bean对象转换为json字符串
String jsonStr = gson.toJson(user, User.class); // fromJson 将json字符串转为bean对象
Student user= gson.fromJson(jsonStr, User.class); // **序列化List**
String jsonStr2 = gson.toJson(list); // **反序列化成List时需要使用到TypeToken getType()**
List<User> retList = gson.fromJson(jsonStr2,new TypeToken<List<User>>(){}.getType());
创建方式二:
//serializeNulls()是GsonBuilder提供的一种配置,当字段值为空或null时,依然对该字段进行转换
Gson gson = new GsonBuilder().serializeNulls().create();
使用GsonBuilder创建Gson实例的步骤:
附录00:
package entity; /**
* Created by baizhuang on 2019/9/23 16:29.
*/ public class User {
private int id;
private String name;
private String email;
private String address; public User() {
} public User(int id, String name, String email, String address) {
this.id = id;
this.name = name;
this.email = email;
this.address = address;
} @Override
public String toString() {
return "User{" +
"id=" + id +
", name='" + name + '\'' +
", email='" + email + '\'' +
", address='" + address + '\'' +
'}';
} public int getId() {
return id;
} public void setId(int id) {
this.id = id;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public String getEmail() {
return email;
} public void setEmail(String email) {
this.email = email;
} public String getAddress() {
return address;
} public void setAddress(String address) {
this.address = address;
}
}
附录01:
package entity; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map; /**
* Created by baizhuang on 2019/9/23 16:30.
*/ public class Test { public static List<User> findAllUser(){
return Arrays.asList(
new User(1,"zhangsan","zhang","北京"),
new User(2,"lisi","li","上海")); } public static void listToJsonString(){
List<User> users= findAllUser(); System.out.println(users); String str = JSONObject.toJSONString(users); System.out.println(str);
} public static void maptoJsonObject(){
Map<String,Object> map = new HashMap();
map.put("name","zhangsan");
map.put("age","15");
JSONObject jsonObject = new JSONObject(map);
System.out.printf("Json:"+jsonObject); String jsonStr = JSON.toJSONString(map);
System.out.println(jsonStr); } public static void stringToMap(){ String jsonStr = "{\"name\":\"zhangsan\",\"age\":\"15\"}"; JSONObject jsonObject = JSONObject.parseObject(jsonStr); Map<String,Object> map = jsonObject; } public static void jsonToJsonObject(){
String jsonStr = "{\"name\":\"zhangsan\",\"age\":\"15\"}"; JSONObject jsonObject = JSON.parseObject(jsonStr); System.out.println(jsonObject);
} public static void jsonStrToJsonBean(){
String jsonStr = "{\"name\":\"zhangsan\",\"email\":\"15\"}"; User user = JSON.parseObject(jsonStr,User.class); System.out.println(user);
} public static void jsonStrToJsonArray(){
String jsonStr = "[{\"name\":\"zhangsan\",\"email\":\"zhangsan@qq.com\"},{\"name\":\"lisi\",\"email\":\"lisi@163.com\"}]"; JSONArray array = JSON.parseArray(jsonStr); for(int i=0;i<array.size();i++){
System.out.println(array.get(i));
}
} public static void javaBeanToJsonStr(){
User user = new User(11,"wangwu","wangwu@163.com","上海"); String str = JSON.toJSONString(user);
System.out.println(str);
} public static void jsonStrToBeanList(){
String jsonStr = "[{\"name\":\"zhangsan\",\"email\":\"zhangsan@qq.com\"},{\"name\":\"lisi\",\"email\":\"lisi@163.com\"}]";
List<User> list = JSON.parseArray(jsonStr,User.class);
for(User user : list){
System.out.println(user);
}
} public static void beanToJsonObject(){
User user = new User(11,"wangwu","wangwu@163.com","上海"); JSONObject jsonObject = (JSONObject) JSON.toJSON(user); System.out.println(jsonObject); } public static void main(String []args){
//listToJsonString();
//();
// stringToMap();
// jsonToJsonObject();
// jsonStrToJsonBean();
//jsonStrToJsonArray();
// javaBeanToJsonStr();
//jsonStrToBeanList();
beanToJsonObject(); }
}
附录02:
public class TestOrgJson {
public static void beanToJSONObject(){
User user = new User(11,"wangwu","wangwu@163.com","上海");
JSONObject jsonObject = new JSONObject(user);
System.out.println(jsonObject);
}
public static void mapToJSONObject(){
Map<String,Object> map = new HashMap();
map.put("name","zhangsan");
map.put("age","15");
JSONObject jsonObject = new JSONObject();
jsonObject.toMap();
}
public static void main(String []args){
}
}
JSONObject、 JsonObject、阿里fastJson、谷歌gson区别的更多相关文章
- java fastjson:Map与json以及JSONObject ,JSONObject与String互转
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson ...
- json对象和java对象的相互转换方法(json-lib、jackson、fastjson、gson)
一 使用json-lib包下的JSONObject和JSONArray转换 代码如下: package com.test.test; import java.util.ArrayList; impor ...
- Fastjson和Gson零碎总结
一:用于测试的类 User类 import lombok.Data; import lombok.experimental.Accessors; /** * @author silentdoer * ...
- FastJson和Gson和Json数据解析分析和用法
首先分析下目前号称最快的FastJson,这个是所有人都验证过的,解析速度确实比较快,不过也需要根据数据量来看,数据量小的时候,Gson性能要稍微优于FastJson,但在数据量大解析的情况下,Fas ...
- 阿里fastjson工具类
package com.common.utils.jsonUtils; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JS ...
- 阿里Fastjson的使用
Fastjson是一个Java语言编写的高性能功能完善的JSON库.由阿里巴巴公司团队开发的. 主要特性主要体现在以下几个方面: 1.高性能 fastjson采用独创的算法,将parse的速度提升到极 ...
- 阿里fastjson解析
解析案例 String object="{total=1, rows=[{_Account=3646808, UserID=131514, Mt4Name=SewwoaIQQS, Serve ...
- FastJSON、Gson和Jackson性能对比
Java处理JSON数据有三个比较流行的类库FastJSON.Gson和Jackson.本文将测试这三个类库在JSON序列化和反序列化的方面表现,主要测试JSON序列化和反序列化的速度.为了防止由于内 ...
- FastJSON、Gson、Jackson(简单了解使用)
下载地址(maven) Jackson:http://mvnrepository.com/search?q=jackson FastJson:http://mvnrepository.com/sear ...
随机推荐
- C语言是菜鸟和大神的分水岭
作为一门古老的编程语言,C语言已经坚挺了好几十年了,初学者从C语言入门,大学将C语言视为基础课程.不管别人如何抨击,如何唱衰,C语言就是屹立不倒:Java.C#.Python.PHP.Perl 等都有 ...
- Linux gd库安装步骤说明
gd 库是 PHP 处理图形的扩展库,它提供了一系列用来处理图片的 API(应用程序编程接口),使用 gd 库可以处理图片或者生成图片.在网站上,gd 库通常用来生成缩略图,或者对图片加水印,或者生成 ...
- linux php 扩展安装
phpize./configure --with-php-config=/usr/bin/php-config make && make install
- PHP无法获取.env文件设置的值
EGPCS指代的是什么? 指的是可以从服务器配置和请求的信息中获取的信息,它包括了environment(环境).GET.POST.cookie.server,对应的全局数组:$_ENV.$_ ...
- Hibernate:HIbernate配置详解-HelloWorld
hibernate介绍: Hibernate是一个开源的对象关系映射框架,它对JDBC进行了轻量级的对象封装,使Java程序员可以随心所欲的使用对象编程思维来操纵数据库. 它不仅提供了从java类到数 ...
- 关于JavaScript中0、空字符串、'0'是true还是false的总结
最近被问到关于js中空字符串是true还是false得问题,一时间没想起来,现在在chrome的console面板上输出代码测试一下. "" == false 结果是true ...
- 联想ideapad关闭Fn
1.打开bios 开启/重启电脑的时候长按Fn+F2,就可以打开bios面板 2.切换到configuration菜单 使用键盘的右箭头将切换到configuration 3.关闭Fn 使用键盘下箭头 ...
- Linux之Socket编程
1.什么是Socket? socket起源于Unix,而Unix/Linux基本哲学之一就是“一切皆文件”,都可以用“打开open –> 读写write/read –> 关闭close”模 ...
- the MTS failed last time时的解决办法
关于6.6.3SP2版本提示The MTS failed last time 1.1 发生前提条件 在重启系统 shutdown -r now后,网页打不开,发现MTS服务无法启动,我自己涉及的 ...
- 一些 乱码 GPU的问题
# # s = '网站地图' 原始 # s1 = s.encode('utf-8') # print(s1.decode('gbk')) #res 缃戠珯鍦板浘 # s = '缃戠珯鍦板浘' 原始 # ...