什么是JSON?
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。 易于人阅读和编写。同时也易于机器解析和生成。 它基于javascript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。 这些特性使JSON成为理想的数据交换语言。
现在我们就来研究一下fastJson。
Fastjson是国内著名的电子商务互联网公司阿里巴巴内部开发的用于java后台处理json格式数据的一个工具包,包括“序列化”和“反序列化”两部分,它具备如下特征
- 速度最快,测试表明,fastjson具有极快的性能,超越任其他的java json parser。包括自称最快的jackson。
- 功能强大,完全支持java bean、集合、Map、日期、Enum,支持范型,支持自省。
- 无依赖,能够直接运行在Java SE 5.0以上版本
- 支持Android。
- 这是fastJson的网址:http://code.alibabatech.com/wiki/display/FastJSON/Overview其中包含了json数据处理的教程,jar下载地址,example样例等
JSONObject 与JSONArray
?JSONObject
json对象,就是一个键对应一个值,使用的是大括号{ },如:{key:value}
?JSONArray
json数组,使用中括号[ ],只不过数组里面的项也是json键值对格式的
Json对象中是添加的键值对,JSONArray中添加的是Json对象
例子:
复制代码
1 public class JsonTest {
2 public static void main(String[] args) {
3
4 // Json对象中是添加的键值对,JSONArray中添加的是Json对象
5
6 JSONObject jsonObject = new JSONObject();
7 JSONObject jsonObject1 = new JSONObject();
8 JSONArray jsonArray = new JSONArray();
9 jsonObject1.put(“001”,“tom”);
10
11 // JSONObject 对象中添加键值对
12 jsonObject.put(“key”,“value”);
13 // 将JSONObject对象添加到json数组中
14 jsonArray.add(jsonObject);
15 jsonArray.add(jsonObject1);
16
17 System.out.println(jsonArray.toString());
18
19 // 输出结果: [{“key”:“value”},{“001”:“tom”}]
20
21 }
22 }
复制代码
先来个官方例子
复制代码
1 package com.wanggs.com.wanggs.json.fastjson;
2
3 import java.util.List;
4
5 /**
6 * Created by wanggs on 2017/7/27.
7 /
8 public class Group {
9 private int id;
10 private String name;
11 List users;
12
13 public int getId() {
14 return id;
15 }
16
17 public void setId(int id) {
18 this.id = id;
19 }
20
21 public String getName() {
22 return name;
23 }
24
25 public void setName(String name) {
26 this.name = name;
27 }
28
29 public List getUsers() {
30 return users;
31 }
32
33 public void setUsers(List users) {
34 this.users = users;
35 }
36 }
37
38 class User{
39 private int id;
40 private String name;
41
42 public int getId() {
43 return id;
44 }
45
46 public void setId(int id) {
47 this.id = id;
48 }
49
50 public String getName() {
51 return name;
52 }
53
54 public void setName(String name) {
55 this.name = name;
56 }
57 }
复制代码
复制代码
1 import com.alibaba.fastjson.JSON;
2
3 import java.util.ArrayList;
4 import java.util.List;
5
6 public class FastJsonTest {
7 public static void main(String[] args) {
8 Group group = new Group();
9 group.setId(0);
10 group.setName(“admin”);
11
12 User user = new User();
13 user.setId(001);
14 user.setName(“guest”);
15 User user1 = new User();
16 user1.setId(002);
17 user1.setName(“root”);
18 List users = new ArrayList();
19 users.add(user);
20 users.add(user1);
21
22 group.setUsers(users);
23
24 String json = JSON.toJSONString(group);
25 System.out.println(json);
26
27 // 输出: {“id”:0,“name”:“admin”,“users”:[{“id”:1,“name”:“guest”},{“id”:2,“name”:“root”}]}
28 }
29 }
复制代码
下面给出fastJson处理json数据格式的代码样例:
复制代码
1 import com.alibaba.fastjson.JSON;
2 import com.alibaba.fastjson.JSONObject;
3 import com.alibaba.fastjson.serializer.SerializerFeature;
4 import com.wanggs.com.wanggs.json.fastjson.People;
5 import org.junit.Test;
6
7 import static org.junit.Assert.;
8
9 public class FastJsonTestTest {
10
11 /**
12 * 序列化
13 /
14 @Test
15 public void toJsonString() {
16 People people = new People(“001”,“tom”,12);
17 String text = JSON.toJSONString(people);
18 System.out.println(text);
19
20 // 输出结果: {“age”:12,“id”:“001”,“name”:“tom”}
21 }
22
23 /*
24 * 反序列为Json对象
25 /
26 @Test
27 public void parseJsonObject(){
28 String text = “{“age”:12,“id”:“001”,“name”:“tom”}”;
29 People people = (People) JSON.parseObject(text,People.class);
30 System.out.println(“parseBeanObject()方法:people==” + people.getId() + “,” + people.getName() + “,” + people.getAge());
31
32 // 输出结果为: parseBeanObject()方法:people001,tom,12
33 }
34
35 /*
36 * 将javaBean转化为json对象
37 */
38 @Test
39 public void bean2Json(){
40 People people = new People(“002”,“jack”,23);
41 JSONObject jsonObject = (JSONObject) JSON.toJSON(people);
42 System.out.println("bean2Json()方法:jsonObject" + jsonObject);
43
44 // 输出结果: bean2Json()方法:jsonObject=={“name”:“jack”,“id”:“002”,“age”:23}
45 }
46
47 /**
48 * 全序列化 直接把java bean序列化为json文本之后,能够按照原来的类型反序列化回来。支持全序列化,需要打开SerializerFeature.WriteClassName特性
49 /
50 @Test
51 public void parseJSONAndBeanEachother(){
52 People people = new People(“002”,“jack”,23);
53 SerializerFeature[] featureArr = { SerializerFeature.WriteClassName };
54 String text = JSON.toJSONString(people, featureArr);
55
56 System.out.println(“parseJSONAndBeanEachother()方法:text==” + text);
57 // 输出结果:parseJSONAndBeanEachother()方法:text=={"@type":“com.wanggs.com.wanggs.json.fastjson.People”,“age”:23,“id”:“002”,“name”:“jack”}
58 People people1 = (People) JSON.parse(text);
59 System.out.println(“parseJSONAndBeanEachother()方法:People==” + people1.getId() + “,” + people1.getName() + “,” + people1.getAge());
60 // 输出结果:userObj==testFastJson001,maks,105
61 }
62 }
复制代码
附:javaBean类People.java
复制代码
1 public class People {
2 private String id;
3 private String name;
4 private int age;
5
6 public People() {
7 }
8
9 public People(String id, String name, int age) {
10 this.id = id;
11 this.name = name;
12 this.age = age;
13 }
14
15 public String getId() {
16 return id;
17 }
18
19 public void setId(String id) {
20 this.id = id;
21 }
22
23 public String getName() {
24 return name;
25 }
26
27 public void setName(String name) {
28 this.name = name;
29 }
30
31 public int getAge() {
32 return age;
33 }
34
35 public void setAge(int age) {
36 this.age = age;
37 }
38 }
复制代码
再深入Json
复制代码
1 import com.alibaba.fastjson.JSON;
2 import com.alibaba.fastjson.JSONArray;
3 import com.wanggs.com.wanggs.json.fastjson.Address;
4 import com.wanggs.com.wanggs.json.fastjson.People;
5 import org.junit.Test;
6
7 import java.util.;
8
9 import static org.junit.Assert.*;
10
11 /**
12 * Created by wanggs on 2017/7/27.
13 /
14 public class FastJsonTest1Test {
15 /*
16 * 数组转json字符串
17 /
18 @Test
19 public void array2Json() {
20 String[] arr = {“bill”, “green”, “maks”, “jim”};
21 String jsonText = JSON.toJSONString(arr);
22 System.out.println(“array2Json()方法:jsonText==” + jsonText);
23 // 输出结果:jsonText==[“bill”,“green”,“maks”,“jim”]
24 }
25
26 /*
27 * json格式字符串转数组
28 /
29 @Test
30 public void json2Array() {
31 String jsonText = “[“bill”,“green”,“maks”,“jim”]”;
32 JSONArray jsonArray = JSON.parseArray(jsonText);
33 System.out.println(“json2Array()方法:jsonArray==” + jsonArray);
34 // 输出结果:jsonArray==[“bill”,“green”,“maks”,“jim”]
35 }
36
37 /*
38 * 数组转json格式字符串
39 /
40 @Test
41 public void array2Json2() {
42 People people = new People(“001”, “tom”, 12);
43 People people1 = new People(“002”, “jack”, 23);
44 People people2 = new People(“003”, “mair”, 22);
45
46 People[] peoples = new People[]{people, people1, people2};
47
48 String jsonText = JSON.toJSONString(peoples);
49 System.out.println(“array2Json2()方法:jsonText==” + jsonText);
50
51 //输出结果:array2Json2()方法:jsonText==[{“age”:12,“id”:“001”,“name”:“tom”},{“age”:23,“id”:“002”,“name”:“jack”},{“age”:22,“id”:“003”,“name”:“mair”}]
52
53 }
54
55 /*
56 * json格式字符串转数组
57 /
58 @Test
59 public void json2Array2() {
60 String jsonText = “[{“age”:12,“id”:“001”,“name”:“tom”},{“age”:23,“id”:“002”,“name”:“jack”},{“age”:22,“id”:“003”,“name”:“mair”}]”;
61 JSONArray jsonArr = JSON.parseArray(jsonText);
62 System.out.println(“json2Array2()方法:jsonArr==” + jsonArr);
63 // 输出结果:json2Array2()方法:jsonArr==[{“name”:“tom”,“id”:“001”,“age”:12},{“name”:“jack”,“id”:“002”,“age”:23},{“name”:“mair”,“id”:“003”,“age”:22}]
64
65 }
66
67 /*
68 * list集合转json格式字符串
69 /
70 @Test
71 public void list2Json() {
72 List list = new ArrayList();
73 list.add(new People(“001”, “tom”, 12));
74 list.add(new People(“002”, “jack”, 23));
75 list.add(new People(“003”, “mair”, 22));
76
77 String jsonText = JSON.toJSONString(list);
78 System.out.println(“list2Json()方法:jsonText==” + jsonText);
79
80 // 输出的结果为: [{“age”:12,“id”:“001”,“name”:“tom”},{“age”:23,“id”:“002”,“name”:“jack”},{“age”:22,“id”:“003”,“name”:“mair”}]
81 }
82
83
84 /*
85 * map转json格式字符串
86 /
87 @Test
88 public void map2Json() {
89 Map map = new HashMap();
90 Address address1 = new Address(“广东省”,“深圳市”,“科苑南路”,“580053”);
91 map.put(“address1”, address1);
92 Address address2 = new Address(“江西省”,“南昌市”,“阳明路”,“330004”);
93 map.put(“address2”, address2);
94 Address address3 = new Address(“陕西省”,“西安市”,“长安南路”,“710114”);
95 map.put(“address3”, address3);
96 String jsonText = JSON.toJSONString(map, true);
97 System.out.println(“map2Json()方法:jsonText==”+jsonText);
98 //输出结果:jsonText=={“address1”:{“city”:“深圳市”,“post”:“580053”,“province”:“广东省”,“street”:“科苑南路”},“address2”:{“city”:“南昌市”,“post”:“330004”,“province”:“江西省”,“street”:“阳明路”},“address3”:{“city”:“西安市”,“post”:“710114”,“province”:“陕西省”,“street”:“长安南路”}}
99 }
100
101 /*
102 * json转map
103 /
104 @Test
105 public void json2Map(){
106 String text = “{“age”:12,“id”:“001”,“name”:“tom”}”;
107 Map<String,Object> map = JSON.parseObject(text);
108 System.out.println(“json2Map()方法:map==”+map);
109 //输出结果:{“name”:“tom”,“id”:“001”,“age”:12}
110 Set set = map.keySet();
111 for(String key : set){
112 System.out.println(key+"—>"+map.get(key));
113 }
114 }
115 }
复制代码
复制代码
1 import com.alibaba.fastjson.JSON;
2
3
4 5
6 public class CustomText {
7
8 /*
9 * touser : OPENID
10 * msgtype : text
11 * text : {“content”:“Hello World”}
12 /
13 //{“msgtype”:“text”,“text”:{“content”:“Hello World”},“touser”:“OPENID”}
14 private String touser;
15 private String msgtype;
16 private TextBean text;
17
18 public static class TextBean {
19 /*
20 * content : Hello World
21 /
22
23 private String content;
24
25 public String getContent() {
26 return content;
27 }
28
29 public void setContent(String content) {
30 this.content = content;
31 }
32 }
33 public String getTouser() {
34 return touser;
35 }
36
37 public void setTouser(String touser) {
38 this.touser = touser;
39 }
40
41 public String getMsgtype() {
42 return msgtype;
43 }
44
45 public void setMsgtype(String msgtype) {
46 this.msgtype = msgtype;
47 }
48
49 public TextBean getText() {
50 return text;
51 }
52
53 public void setText(TextBean text) {
54 this.text = text;
55 }
56 }
57
58 class Test{
59 public static void main(String[] args) {
60 CustomText customText = new CustomText();
61 customText.setTouser(“OPENID”);
62 customText.setMsgtype(“text”);
63 CustomText.TextBean textBean = new CustomText.TextBean();
64 textBean.setContent(“Hello World”);
65 customText.setText(textBean);
66
67 String json = JSON.toJSONString(customText);
68 System.out.println(json);
69 //{“msgtype”:“text”,“text”:{“content”:“Hello World”},“touser”:“OPENID”}
70 }
71 /*
72 * {
73 “touser”:“OPENID”,
74 “msgtype”:“text”,
75 “text”:
76 {
77 “content”:“Hello World”
78 }
79 }
80 */
81 }
复制代码
归纳六种方式json转map
复制代码
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import java.util.Map;
import java.util.Set;
/**
- Created by wanggs on 2017/7/27.
/
public class FastJsonTest1 {
public static void main(String[] args) {
String str = “{“0”:“zhangsan”,“1”:“lisi”,“2”:“wangwu”,“3”:“maliu”}”;
//第一种方式
Map maps = (Map)JSON.parse(str);
System.out.println(“这个是用JSON类来解析JSON字符串!!!”);
for (Object map : maps.entrySet()){
System.out.println(((Map.Entry)map).getKey()+" " + ((Map.Entry)map).getValue());
}
//第二种方式
Map mapTypes = JSON.parseObject(str);
System.out.println(“这个是用JSON类的parseObject来解析JSON字符串!!!”);
for (Object obj : mapTypes.keySet()){
System.out.println(“key为:”+obj+“值为:”+mapTypes.get(obj));
}
//第三种方式
Map mapType = JSON.parseObject(str,Map.class);
System.out.println(“这个是用JSON类,指定解析类型,来解析JSON字符串!!!”);
for (Object obj : mapType.keySet()){
System.out.println(“key为:”+obj+“值为:”+mapType.get(obj));
}
//第四种方式
/*
* JSONObject是Map接口的一个实现类
/
Map json = (Map) JSONObject.parse(str);
System.out.println(“这个是用JSONObject类的parse方法来解析JSON字符串!!!”);
for (Object map : json.entrySet()){
System.out.println(((Map.Entry)map).getKey()+" "+((Map.Entry)map).getValue());
}
//第五种方式
/*
* JSONObject是Map接口的一个实现类
/
JSONObject jsonObject = JSONObject.parseObject(str);
System.out.println(“这个是用JSONObject的parseObject方法来解析JSON字符串!!!”);
for (Object map : json.entrySet()){
System.out.println(((Map.Entry)map).getKey()+" "+((Map.Entry)map).getValue());
}
//第六种方式
/*
* JSONObject是Map接口的一个实现类
/
Map mapObj = JSONObject.parseObject(str,Map.class);
System.out.println(“这个是用JSONObject的parseObject方法并执行返回类型来解析JSON字符串!!!”);
for (Object map: json.entrySet()){
System.out.println(((Map.Entry)map).getKey()+" "+((Map.Entry)map).getValue());
}
String strArr = “{{“0”:“zhangsan”,“1”:“lisi”,“2”:“wangwu”,“3”:“maliu”},” +
“{“00”:“zhangsan”,“11”:“lisi”,“22”:“wangwu”,“33”:“maliu”}}”;
// JSONArray.parse()
System.out.println(json);
}
}
复制代码
复制代码
1 import com.alibaba.fastjson.JSON;
2 import com.alibaba.fastjson.JSONArray;
3 import com.alibaba.fastjson.JSONObject;
4
5 import java.util.;
6
7
8 public class FastJsonTest {
9 public static void main(String[] args) {
10
11 String json = “[{“id”:1,“type”:“cycle”,“attribute”:{“center”:”(10.4, 123.345)", “radius”:67.4}},{“id”:2,“type”:“polygon”,“attribute”:[{“vertex”:"(10.4, 133.345)"}, {“vertex”:"(10.4, 143.345)"}]}]";
12
13 JSONArray array = JSON.parseArray(json);
14
15 System.out.println(array.getJSONObject(0).getJSONObject(“attribute”).get(“center”));
16
17 System.out.println(array.getJSONObject(1).getJSONArray(“attribute”).getJSONObject(1).get(“vertex”));
18
19 // 输出结果为: (10.4, 123.345) (10.4, 143.345)
20 }
21 }
22
复制代码
方法总结
复制代码
4.JSONObject、JSONArray,Map转String
JSONObject——String:
System.out.println(myJsonObject);//可直接输出JSONObject的内容
myJsonObject.toString();
JSONArray——String:
System.out.println(myJsonArray);//可直接输出myJsonArray的内容
myJsonArray.toString();
Map——String:
System.out.println(map);//可直接输出map的内容
map.toString();
5.JSONObject转JSONArray
JSONObject myJson = JSONObject.fromObject(jsonString);
Map m = myJson;
7.JSONArray转JSONObject
for(int i=0 ; i < myJsonArray.length() ;i++)
{
//获取每一个JsonObject对象
JSONObject myjObject = myJsonArray.getJSONObject(i);
}
8.JSONArray转Map
9.Map转JSONObject
JSONObject json = JSONObject.fromObject( map );
10.Map转JSONArray
JSONArray.fromObject(map);
11.List转JSONArray
JSONArray jsonArray2 = JSONArray.fromObject( list );
复制代码
相关参考:
复制代码
1 1.String转JSONObject
2
3 (1)json-lib(即net.sf.json.JSONObject)
4
5 String jsonMessage = “{“语文”:“88”,“数学”:“78”,“计算机”:“99”}”;
6
7 JSONObject myJson = JSONObject.fromObject(jsonMessage);
8
9 (2).用阿里巴巴的fastjson的jar包
10
11 String str = “{“baid”:null,“32d3:”:“null”,433:“0x32”,032:“ju9fw”}”;
12 com.alibaba.fastjson.JSONObject jm = com.alibaba.fastjson.JSON.parseObject(str);
13
14 2.String转JSONArray
15
16 String jsonMessage = “[{‘num’:‘成绩’, ‘外语’:88, ‘历史’:65, ‘地理’:99, ‘object’:{‘aaa’:‘1111’,‘bbb’:‘2222’,‘cccc’:‘3333’}},” +
17 “{‘num’:‘兴趣’, ‘外语’:28, ‘历史’:45, ‘地理’:19, ‘object’:{‘aaa’:‘11a11’,‘bbb’:‘2222’,‘cccc’:‘3333’}},” +
18 “{‘num’:‘爱好’, ‘外语’:48, ‘历史’:62, ‘地理’:39, ‘object’:{‘aaa’:‘11c11’,‘bbb’:‘2222’,‘cccc’:‘3333’}}]”;
19 JSONArray myJsonArray = JSONArray.fromObject(jsonMessage);
20 System.out.println(myJsonArray);
21
22 3.String转Map
23
24 (1)json-lib(即net.sf.json.JSONObject)
25
26 String jsonMessage = “{“语文”:“88”,“数学”:“78”,“计算机”:“99”}”;
27
28 JSONObject myJson = JSONObject.fromObject(jsonMessage);
29
30 Map m = myJson;
31
32 (2)用阿里巴巴的fastjson的jar包
33
34 String str = “{“baid”:null,“32d3:”:“null”,433:“0x32”,032:“ju9fw”}”;
35 Map mapTypes = com.alibaba.fastjson.JSON.parseObject(str);
36
37 (3) (需要引入jackjson的core、databind、annotations三个jar包 )
38
39 String json = “{“PayPal key2”:“PayPal value2”,“PayPal key1”:“PayPal value1”,“PayPal key3”:“PayPalvalue3”}”;
40
41 ObjectMapper mapper = new ObjectMapper();
42 Map<String,Object> m = mapper.readValue(json, Map.class);
43
44 (4)(特殊格式的String)
45
46 String a ="{se=2016, format=xml, at=en co=3}";
47
48 a = a.substring(1, a.length()-1);
49 Map docType = new HashMap();
50 Java.util.StringTokenizer items;
51 for(StringTokenizer entrys = new StringTokenizer(a, “, “);entrys.hasMoreTokens();
52 docType.put(items.nextToken(), items.hasMoreTokens() ? ((Object) (items.nextToken())) : null)){
53 items = new StringTokenizer(entrys.nextToken(), “=”);
54 }
55
56 (5)Gson
57 Map map = new Gson().fromJson(jsonStr,Map.class);
58
59
60
61 4.JSONObject、JSONArray,Map转String
62
63 JSONObject——String:
64
65 System.out.println(myJsonObject);//可直接输出JSONObject的内容
66
67 myJsonObject.toString();
68
69 阿里巴巴fastjson:
70
71 String str = JSON.toJSONString(obj,SerializerFeature.BrowserCompatible);
72
73 JSONArray——String:
74
75 System.out.println(myJsonArray);//可直接输出myJsonArray的内容
76
77 myJsonArray.toString();
78
79 Map——String:
80
81 System.out.println(map);//可直接输出map的内容
82
83 map.toString();
84
85
86
87 5.JSONObject转JSONArray
88
89
90
91 6.JSONObject转Map
92
93 JSONObject myJson = JSONObject.fromObject(jsonString);
94
95 Map m = myJson;
96
97
98
99 7.JSONArray转JSONObject
100
101 for(int i=0 ; i < myJsonArray.length() ;i++){
102 //获取每一个JsonObject对象
103 JSONObject myjObject = myJsonArray.getJSONObject(i);
104
105 }
106
107 8.JSONArray转Map
108
109 先jsonArray先循环取出jsonObject,在转成Map
110
111
112
113 9.Map转JSONObject
114
115 (1)json-lib(即net.sf.json.JSONObject)
116 JSONObject json = JSONObject.fromObject( map );
117 或
118 String jsonString = JSON.toJSONString(map,SerializerFeature.WriteMapNullValue,SerializerFeature.WriteNullStringAsEmpty);
119
120 (2)alibaba的fastjson
121 JSONObject json = JSON.parseObject(str);
122
123
124
125 Map转json格式的String
126
127 JSON.toJSONString(map, SerializerFeature.BrowserCompatible).replace(”\\u”, “\u”);
128
129 //需要引入alibaba的fastjson包
130
131
132
133 10.Map转JSONArray
134
135 JSONArray.fromObject(map);
136
137 11.List转JSONArray
138 JSONArray jsonArray2 = JSONArray.fromObject( list );
139
140 fastjson:List转JSONArray
141
142 (1)List list1 = new ArrayList();
143 list1.add(“false”);
144 list1.add(true);
145 list1.add(null);
146 list1.add(0x13e);
147 list1.add(0123);
148 JSONArray array1 = JSONArray.parseArray(JSON.toJSONString(list1));
149
150 (2)JSONArray jsonArray = new JSONArray(list1) ;
151
152 12.JSONArray转List
153
154 List<Map<String,Object>> mapListJson = (List)jsonArray;
155
156 或
157
158 public static List<Map<String, Object>> jsonArrayToList(JSONArray ja){
159 return JSONArray.toJavaObject(ja, List.class);
160 }
161
162 jsonArray转实体类list:
163
164 Student[] ss =(Student[])net.sf.json.JSONArray.toArray(jsonArray,Student.class);
165
166
167
168 fastjson:JSONArray转List
169
170 JSONArray arr = new JSONArray();
171 arr.add(0,“13”);
172 arr.add(1,“jo”);
173 arr.add(2,“kpo”);
174 List list = JSONObject.parseArray(array.toJSONString(), String.class);
175
176
177
178 JSONArray array = new JSONArray();
179
180 List list = JSONObject.parseArray(array.toJSONString(), T.class);
181
182 13.String转数组
183
184 String string = “a,b,c”;
185 String [] stringArr= string.split(","); //注意分隔符是需要转译滴…
186 如果是"abc"这种字符串,就直接
187 String string = “abc” ;
188 char [] stringArr = string.toCharArray(); //注意返回值是char数组
189 如果要返回byte数组就直接使用getBytes方法就ok了~~
190 String string = “abc” ;
191 byte [] stringArr = string.getBytes();
192
193 String转List
194
195 String str = “”;
196
197 List list = JSONObject.parseArray(str, T.class);
198
199 或net.sf.json
200
201 String arrayStr="[{“name”:“JSON”,“age”:“24”,“address”:“北京市西城区”},{“name”:“JSON2”,“age”:“24”,“address”:“北京市西城区”}]";
202 //转化为list
203 List list2=(List)net.sf.json.JSONArray.toList(net.sf.json.JSONArray.fromObject(arrayStr), Student.class);
204
205
206
207 数组转String
208
209 char[] data={a,b,c};
210 String s=new String(data);
211
212
213
214 14.java实体类的List转String
215
216 JSON与String关系比较近,而JSON的子类JSONArray又和List关系比较近,故把JSONArray做中介过渡:
217
218 import com.alibaba.fastjson.JSONArray;
219
220 public String list2str(List<?> list){
221 JSONArray jsonArray = (JSONArray) JSONArray.toJSON(list); //List转JSONArray
222 System.out.println(jsonArray.toString());
223 return jsonArray.toJSONString(); //JSONArray比较容易转String
224 }
225
226 15.Array、List、Set之间转换:
227
228 String[] arr = new String[]{“Tom”, “Bob”, “Jane”};
229 //Array转List
230 List arr2list = Arrays.asList(arr);
231 //Array转Set
232 Set arr2set = new HashSet(Arrays.asList(arr));
233 //List转Array
234 Object[] list2arr = arr2list.toArray();
235 //List转Set
236 Set list2set = new HashSet<>(arr2list);
237 //Set转Array
238 Object[] set2arr = list2set.toArray();
239 //Set转List
240 List set2list = new ArrayList<>(arr2set);
241 List list = new ArrayList(new HashSet());//
242
243 16.java对象转JsonObject
244
245 Student stu=new Student();
246 stu.setName(“JSON”);
247 stu.setAge(“23”);
248 stu.setAddress(“北京市西城区”);
249
250 net.sf.json.JSONObject json = net.sf.json.JSONObject.fromObject(stu);
251
252 或alibaba的fastjson:
253
254 JSONObject json = (JSONObject) JSONObject.toJSON(stu);
255
256 17.java对象转jsonArray
257
258 Student stu=new Student();
259 stu.setName(“JSON”);
260 stu.setAge(“23”);
261 stu.setAddress(“北京市西城区”);
262
263 net.sf.json.JSONArray array = net.sf.json.JSONArray.fromObject(stu);
264
265 但alibaba的fastjson报错:
266
267 //JSONArray array = (JSONArray) JSONArray.toJSON(stu);//报错
268
269 18.JsonObject转java对象
270
271 Student stu=(Student)JSONObject.toBean(jsonObject, Student.class);
272
273 19.jsonArray转java对象
274
275 jsonArray先循环取出jsonObject,再转成java对象