使用fastjson进行JSONObject、JSONArray、Map、JavaBean、list、object之间的相互转换

什么是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格式数据的一个工具包,包括“序列化”和“反序列化”两部分,它具备如下特征
1. 速度最快,测试表明,fastjson具有极快的性能,超越任其他的java json parser。包括自称最快的jackson。
2. 功能强大,完全支持java bean、集合、Map、日期、Enum,支持范型,支持自省。
3. 无依赖,能够直接运行在Java SE 5.0以上版本
4. 支持Android。
5. 这是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<User> 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<User> getUsers() {
30         return users;
31     }
32 
33     public void setUsers(List<User> 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<User> users = new ArrayList<User>();
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()方法:people==001,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<People> list = new ArrayList<People>();
 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<String> 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<Object> list1 = new ArrayList<Object>();
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<String> list = JSONObject.parseArray(array.toJSONString(), String.class);
175 
176  
177 
178 JSONArray array = new JSONArray();
179 
180 List<T> 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<T> 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<Student> list2=(List<Student>)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<String> arr2list = Arrays.asList(arr);
231 //Array转Set
232 Set<String> arr2set = new HashSet<String>(Arrays.asList(arr));
233 //List转Array
234 Object[] list2arr = arr2list.toArray();
235 //List转Set
236 Set<String> list2set = new HashSet<>(arr2list);
237 //Set转Array
238 Object[] set2arr = list2set.toArray();
239 //Set转List
240 List<String> set2list = new ArrayList<>(arr2set);
241 List<String> list = new ArrayList<String>(new HashSet<String>());//
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对象

版权声明:本文为CSDN博主「tangerr」的原创文章

posted @ 2019-08-09 19:27  汪全意  阅读(25868)  评论(0编辑  收藏  举报