您的位置:首页 > Web前端 > JavaScript

json-lib总结

2012-11-08 23:21 253 查看
工作中遇到json字符串转换问题,需要将json字符串数组转换成对象集合。据查询一般jackson对json的转换效率更好,关于jackson的简单用法请看博文“jackson简单用法总结”。个人从网上搜集资料,现总结json-lib用法如下,希望对读者有所帮助。



代码及jar包下载链接:http://download.csdn.net/detail/jtianlin/4748498

public class User {

 

 private String username;

 private String address;

 setter&&getter....

}

 

public class BeanToJson {

 public static void main(String[] args) {

  

     //由对象转换成json字符串,用JSONObject

  User user = new User();

  user.setAddress("安徽");

  user.setUsername("张三");

  JSONObject jsonObject = JSONObject.fromObject(user);

  System.out.println(jsonObject); 

  //打印结果:{"address":"安徽","username":"张三"}

  

  //由list转换成json字符串,用JSONArray

  List<User> list = new ArrayList<User>();

  User user1 = new User();

  user1.setAddress("山东");

  user1.setUsername("李四");

  User user2 = new User();

  user2.setAddress("北京");

  user2.setUsername("王五");

  list.add(user1);

  list.add(user2);

  JSONArray jsonArray = JSONArray.fromObject(list);

  System.out.println(jsonArray);

  //打印结果:[{"address":"山东","username":"李四"},{"address":"北京","username":"王五"}]

 

  //下面方式错误,将list集合转换成json字符串必须使用jsonArray。

//  JSONObject jsonObject2 = JSONObject.fromObject(list);

//  System.out.println(jsonObject2);

  

  //由map转换成json字符串,用jsonObject

  Map<String,User> map = new HashMap<String,User>();

  map.put("user1", user1);

  map.put("user2", user2);

  JSONObject jsonObjectMap = JSONObject.fromObject(map);

  System.out.println(jsonObjectMap);

  //打印结果:{"user2":{"address":"北京","username":"王五"},"user1":{"address":"山东","username":"李四"}}

 

  //由set转换成json字符串,需要用JSONArray

     Set set = new HashSet();

     set.add(user1);

     set.add(user2);

     JSONArray jsonArraySet = JSONArray.fromObject(set);

  System.out.println(jsonArraySet);

  //打印结果:[{"address":"北京","username":"王五"},{"address":"山东","username":"李四"}]

 

 }

}

 

public class JsonToBean {

 

 public static void main(String[] args) {

  

  //由对象json字符串到java对象

  String jsonStr = "{\"address\":\"安徽\",\"username\":\"张三\"}";

  JSONObject jsonObject = JSONObject.fromObject(jsonStr);

  User user = (User)jsonObject.toBean(jsonObject, User.class);

  System.out.println(user);

  //打印结果:com.neusoft.jsonlib.User@17590db

  

  //由json字符串数组转换到java对象list集合

  String jsonListStr = "[{\"address\":\"山东\",\"username\":\"李四\"},{\"address\":\"北京\",\"username\":\"王五\"}]";

  JSONArray jsonObjectList = JSONArray.fromObject(jsonListStr);

  List<User> userList = (List<User>) jsonObjectList.toCollection(jsonObjectList, User.class);

  System.out.println(userList);

  //打印结果:[com.neusoft.jsonlib.User@1a7bf11,
com.neusoft.jsonlib.User@1f12c4e]

  

  //由json字符串数组转换到java对象list集合

  String jsonSetStr = "[{\"address\":\"山东\",\"username\":\"李四\"},{\"address\":\"北京\",\"username\":\"王五\"}]";

  JSONArray jsonObjectSet = JSONArray.fromObject(jsonSetStr);

  List<User> userSet = (List<User>) jsonObjectList.toCollection(jsonObjectSet, User.class);

  System.out.println(userSet);

  //打印结果:[com.neusoft.jsonlib.User@1a7bf11,
com.neusoft.jsonlib.User@1f12c4e]

  

 }

}

 

 

public class MapAndJson {

 

 public static void main(String[] args) {

  

  //由字符串map到json字符串

  Map<String,String> strMap = new HashMap<String,String>();

  strMap.put("1", "aaa");

  strMap.put("2", "ccc");

  JSONObject strMapJson = JSONObject.fromObject(strMap);

  System.out.println(strMapJson);

  //打印结果:{"2":"ccc","1":"aaa"}

  

  //由对象map转换到json字符串

  Map<String, User> userMap = new HashMap<String,User>();

  User user1 = new User();

  user1.setAddress("安徽");

  user1.setUsername("lisi");

  User user2 = new User();

  user2.setAddress("shandong");

  user2.setUsername("wangwu");

  userMap.put("user1", user1);

  userMap.put("user2", user2);

  JSONObject userMapJson = JSONObject.fromObject(userMap);

  System.out.println(userMapJson);

  //打印结果:{"user2":{"address":"shandong","username":"wangwu"},"user1":{"address":"安徽","username":"lisi"}}

  

 }

}

 

 

public class JsonXML {

 public static void main(String[] args) {

  // 将json字符串转换成XML对象

  XMLSerializer xmlSerializer = new XMLSerializer();

  JSONObject json2 = JSONObject.fromObject("{\"name\":\"json\",\"bool\":true,\"int\":1}");

  String xmlStr = xmlSerializer.write(json2);

  System.out.println(xmlStr);

  /**

   * 打印结果:<?xml version="1.0" encoding="UTF-8"?> <o><bool

   * type="boolean">true</bool><int type="number">1</int><name

   * type="string">json</name></o>

   */

  // 将XML转换成json

  String str = "<o><bool type=\"string\">true</bool><int type=\"string\">1</int><name type=\"string\">json</name></o>";

  JSON jsonObject = new XMLSerializer().read(str);

  System.out.println(jsonObject);

  // 打印结果:{"bool":"true","int":"1","name":"json"}

  // 将对象写成XML格式

  User user = new User();

  user.setAddress("dongying");

  user.setUsername("lisi");

  JSONObject jsonUserObject = JSONObject.fromObject(user);

  String userStr = new XMLSerializer().write(jsonUserObject);

  System.out.println(userStr);

  /**打印结果:

   * <?xml version="1.0" encoding="UTF-8"?> <o><address type="string">dongying</address><username

   * type="string">lisi</username></o>

   */

  // 由xml到对象

  JSONObject userJsonObject = (JSONObject) new XMLSerializer()

    .read(userStr);

  User jsonUser = (User) JSONObject.toBean(userJsonObject, User.class);

  System.out.println(jsonUser);

  //打印结果:com.neusoft.jsonlib.User@1e97676

 }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  JSON json-lib