本文實例總結(jié)了java實現(xiàn)json字符串與object對象相互轉(zhuǎn)換的方式。分享給大家供大家參考,具體如下:
json-lib、org.json、jackson、gson、fastjson五種方式轉(zhuǎn)換json類型
只列舉了最省事的方式。不涉及復(fù)制情況和速度。
測試用例,一個user類,屬性name,age,location。重寫tostring()。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
public class user { private string name; private integer age; private string location; public user() { } public user(string name) { this .name = name; } public user(string name, integer age) { this .name = name; this .age = age; } public user(string name, integer age, string location) { this .name = name; this .age = age; this .location = location; } public string getname() { return name; } public void setname(string name) { this .name = name; } public integer getage() { return age; } public void setage(integer age) { this .age = age; } public string getlocation() { return location; } public void setlocation(string location) { this .location = location; } @override public string tostring() { return "user{" + "name='" + name + '\ '' + ", age=" + age + ", location='" + location + '\ '' + '}' ; } } |
1、json-lib
maven依賴如下,需注意<classifier>jdk15</classifier>,jar包區(qū)分jdk1.3和jdk1.5版本
1
2
3
4
5
6
|
<dependency> <groupid>net.sf.json-lib</groupid> <artifactid>json-lib</artifactid> <version> 2.4 </version> <classifier>jdk15</classifier> </dependency> |
測試demo
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
import net.sf.json.jsonobject; public class jsonlibdemo { public static void main(string[] args) { //創(chuàng)建測試object user user = new user( "李寧" , 24 , "北京" ); system.out.println(user); //轉(zhuǎn)成json字符串 jsonobject jsonobject = jsonobject.fromobject(user); string json = jsonobject.tostring(); system.out.println(json); //json字符串轉(zhuǎn)成對象 jsonobject jsonobject1 = jsonobject.fromobject(json); user user1 = (user) jsonobject.tobean(jsonobject1,user. class ); system.out.println(user1); } } |
2、org.json
maven依賴如下
1
2
3
4
5
|
<dependency> <groupid>org.json</groupid> <artifactid>json</artifactid> <version> 20170516 </version> </dependency> |
測試demo
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
import org.json.jsonobject; public class orgjsondemo { public static void main(string[] args) { //創(chuàng)建測試object user user = new user( "李寧" , 24 , "北京" ); system.out.println(user); //轉(zhuǎn)成json字符串 string json = new jsonobject(user).tostring(); system.out.println(json); //json字符串轉(zhuǎn)成對象 jsonobject jsonobject = new jsonobject(json); string name = jsonobject.getstring( "name" ); integer age = jsonobject.getint( "age" ); string location = jsonobject.getstring( "location" ); user user1 = new user(name,age,location); system.out.println(user1); } } |
3、jackson
maven依賴
1
2
3
4
5
|
<dependency> <groupid>com.fasterxml.jackson.core</groupid> <artifactid>jackson-databind</artifactid> <version> 2.9 . 0 </version> </dependency> |
測試demo
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
import com.fasterxml.jackson.databind.objectmapper; public class jacksondemo { public static void main(string[] args) { //創(chuàng)建測試object user user = new user( "李寧" , 24 , "北京" ); system.out.println(user); //轉(zhuǎn)成json字符串 objectmapper mapper = new objectmapper(); try { string json = mapper.writevalueasstring(user); system.out.println(json); //json字符串轉(zhuǎn)成對象 user user1 = mapper.readvalue(json,user. class ); system.out.println(user1); } catch (java.io.ioexception e) { e.printstacktrace(); } } } |
4、gson
maven依賴
1
2
3
4
5
|
<dependency> <groupid>com.google.code.gson</groupid> <artifactid>gson</artifactid> <version> 2.8 . 1 </version> </dependency> |
測試demo
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
import com.google.gson.gson; public class gsondemo { public static void main(string[] args) { //創(chuàng)建測試object user user = new user( "李寧" , 24 , "北京" ); system.out.println(user); //轉(zhuǎn)成json字符串 gson gson = new gson(); string json = gson.tojson(user); system.out.println(json); //json字符串轉(zhuǎn)成對象 user user1 = gson.fromjson(json,user. class ); system.out.println(user1); } } |
5、fastjson
maven依賴
1
2
3
4
5
|
<dependency> <groupid>com.alibaba</groupid> <artifactid>fastjson</artifactid> <version> 1.2 . 37 </version> </dependency> |
測試demo
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
import com.alibaba.fastjson.json; public class fastjsondemo { public static void main(string[] args) { //創(chuàng)建測試object user user = new user( "李寧" , 24 , "北京" ); system.out.println(user); //轉(zhuǎn)成json字符串 string json = json.tojson(user).tostring(); system.out.println(json); //json字符串轉(zhuǎn)成對象 user user1 = json.parseobject(json,user. class ); system.out.println(user1); } } |
json-lib時間有些久遠(yuǎn),jar包只更新到2010年
org.json用起來有些繁瑣
jackson、gson、fastjson只需一兩句話就可以搞定
ps:關(guān)于json操作,這里再為大家推薦幾款比較實用的json在線工具供大家參考使用:
在線json代碼檢驗、檢驗、美化、格式化工具:https://tool.zzvips.com/t/jsonjiexi/
json在線格式化工具:https://tool.zzvips.com/t/jsonformat/
在線excel/json互相轉(zhuǎn)換工具:https://tool.zzvips.com/t/excel2json/
json/excel互相轉(zhuǎn)換工具:https://tool.zzvips.com/t/json2excel/
在線json壓縮/轉(zhuǎn)義工具:https://tool.zzvips.com/t/jsonzip/
希望本文所述對大家java程序設(shè)計有所幫助。
原文鏈接:https://blog.csdn.net/n447194252/article/details/77747465