json-lib 解析实例

1.数组转换为json字符串(用JSONArray)

1
2
3
                String array[] = new String[]{"one","two","three"};                
                JSONArray jsonArray= JSONArray.fromObject(array);
                System.out.println(jsonArray);

结果:["one","two","three"]


2.list转换为json字符串(用JSONArray)

1
2
3
4
5
6
                 List list = new ArrayList();            
                 list.add("1");
                 list.add("2");
                 list.add("3");
                 JSONArray jsonArray = JSONArray.fromObject(list);
                 System.out.println(jsonArray);                    

结果:["1","2","3"]


3.Map转换为json字符串(用JSONObject)

1
2
3
4
5
6
                 Map map = new HashMap<String,String>();
         map.put("name""junxie");
         map.put("age""23");
         map.put("county""china");
         JSONObject jsonObject = JSONObject.fromObject(map);
         System.out.println(jsonObject);

结果:{"county":"china","age":"23","name":"junxie"}


4.普通java对象转为json字符串

user对象:

1
2
3
4
5
6
7
8
9
10
11
12
13
public class User {
   public String name;
   public String age;
   public String country;
    
   public User(){}
   public User(String name,String age,String country){
       this.name = name;
       this.age = age;
       this.country = country;
   }
   //省略get和set方法
 }
1
2
3
                 User user = new User("junxie","23","china");
         JSONObject jsonObject = JSONObject.fromObject(user);
         System.out.println(jsonObject);

结果:{"age":"23","country":"china","name":"junxie"}

 注意:和map的结果一样的


5.复杂的java对象转为json字符串(对象中包含list和map)

UserScores对象:

1
2
3
4
5
6
7
8
public class UserScores{
   private List scores;   //list
   private String name;
   private String age;
   private Map scores2;    //map
    
   .....//省略get和set方法
 }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 List scores = new ArrayList();
 scores.add("100");
 scores.add("98");    //组装list
  
 Map scores2 = new HashMap<String, Integer>();
 scores2.put("chinese""80");
 scores2.put("math""90");    //组装map 
  
 UserScores useScores = new UserScores();
 useScores.setAge("23");
 useScores.setName("junxie");
 useScores.setScores(scores); 
 useScores.setScores2(scores2);
 JSONObject jsonObject = JSONObject.fromObject(useScores);
 System.out.println(jsonObject);

结果:

{"age":"23","name":"junxie","scores":["100","98"],"scores2":{"math":"90","chinese":"80"}}

注意:scores为list的生成结果,scores2为map的生成结果



6.json字符串转为普通对象

1
2
3
4
                String jsonString = "{age:'23',country:'china',name:'junxie'}"
        JSONObject jsonObject = JSONObject.fromObject(jsonString); 
        User user = (User)JSONObject.toBean(jsonObject,User.class);
        System.out.println(user.getName());

结果:打印的name为 junxie

注意:先生成jsonObject,再调用静态方法JSONObject.toBean(jsonObject, beanClass)



7.json字符串转为复杂对象(对象中含有list,map或者其他对象)

1
2
3
4
5
6
7
8
9
10
11
12
13
                String jsonList = "{age:'23',name:'junxie',scores:['100','98'],scores2:{math:'90',chinese:'80'}}";  //待解析的json字符串
        Map map = new HashMap();
        map.put("scores", String.class);  //复杂对象list
        map.put("scores2", Map.class);    //复杂对象map  (可以有其他的子对象等)
         
        JSONObject jsonObject = JSONObject.fromObject(jsonList);
        UserScores userScores= (UserScores)JSONObject.toBean(jsonObject, UserScores.class, map);     //注意该方法中要放入之前建立的map
        System.out.println(userScores);
        List<String> scores = userScores.getScores();
        System.out.println(scores);
         
        Map scores2 = userScores.getScores2();
        System.out.println(scores2);

结果:

UserScores@739495b8

[100, 98]

{math=90, chinese=80}

注意:如果要解析成复杂对象时,应该先建立Map,放入所有的复杂对象类型,最后调用方法

JSONObject.toBean(jsonObject, beanClass, classMap)  该classMap则放入所有复杂对象的map






     本文转自布拉君君 51CTO博客,原文链接:http://blog.51cto.com/5148737/1541089,如需转载请自行联系原作者


上一篇:Delphi获取句柄并发送消息!


下一篇:物理机安装linux系统(centos7.6)