Java tojson,Java中json-lib的各种数据转换,及对象转换

JSON  是目前流行的交换数据格式,经常有童鞋问我, json-lib  怎么操作 JSON  , jackson  怎么操作 JSON  , Goson  怎么操作 JSON  等等,本篇介绍 json-lib  的各种操作。

其他的 JSON  信息都在这里:http://www.sojson.com/tag_json.html

json-lib  的jar包引入:http://www.sojson.com/blog/101

一、json-lib的JSON和JavaBean的相互转换。

1、自定义Java Bean 转JSON对象。

  1. /**
  2. * JSON-Lib 对象转JSON
  3. */
  4. @Test
  5. public void entity2json() {
  6. //构建一个对象
  7. JSONModel model = new JSONModel();
  8. model.setAge(10);
  9. model.setName("张三");
  10. model.setDomain("http://www.sojson.com");
  11. //对象转JSON
  12. JSONObject json = JSONObject.fromObject(model);
  13. //转成String
  14. String jsonStr = json.toString();
  15. System.out.printf("json-lib,对象转JSON:%s",jsonStr);
  16. //json-lib,对象转JSON:{"age":10,"domain":"http://www.sojson.com","name":"张三"}
  17. }

这里是一个普通的自定义的 Java  Bean 对象转换。

2、JSON字符串转成Java Bean 对象。

  1. /**
  2. * JSON-Lib JSON转对象
  3. */
  4. @Test
  5. public void json2entity() {
  6. /*
  7. * 刚刚的字符串
  8. * {"age":10,"domain":"http://www.sojson.com","name":"张三"}
  9. * 但是我们要转义双引号,可以用网址 http://www.sojson.com/yasuo.html
  10. */
  11. String jsonStr = "{\"age\":10,\"domain\":\"http://www.sojson.com\",\"name\":\"张三\"}";
  12. //JSON字符串转JSON对象
  13. JSONObject json = JSONObject.fromObject(jsonStr);
  14. //JSON对象 转 JSONModel对象
  15. JSONModel model = (JSONModel) JSONObject.toBean(json, JSONModel.class);
  16. //转成String 方便输出
  17. System.out.printf("json-lib,JSON转对象:%s",JSONObject.fromObject(model).toString());
  18. //json-lib,JSON转对象:{"age":10,"domain":"http://www.sojson.com","name":"张三"}
  19. }

二、json-lib的JSON和Map的相互转换。

1、Map转JSON。

  1. /**
  2. * Map 转 JSON
  3. */
  4. @Test
  5. public void map2json(){
  6. Map map = new HashMap();
  7. map.put("age",10 );
  8. map.put("name","张三");
  9. map.put("domain","http://www.sojson.com");
  10. //对象转JSON
  11. JSONObject json = JSONObject.fromObject(map);
  12. //转成String
  13. String jsonStr = json.toString();
  14. System.out.printf("json-lib,Map转JSON:%s",jsonStr);
  15. //json-lib,Map转JSON:{"age":10,"domain":"http://www.sojson.com","name":"张三"}
  16. }

2、JSON转Map

  1. /**
  2. * JSON-Lib JSON转Map
  3. */
  4. @Test
  5. public void json2map() {
  6. /*
  7. * 刚刚的字符串
  8. * {"age":10,"domain":"http://www.sojson.com","name":"张三"}
  9. * 但是我们要转义双引号,可以用网址 http://www.sojson.com/yasuo.html
  10. */
  11. String jsonStr = "{\"age\":10,\"domain\":\"http://www.sojson.com\",\"name\":\"张三\"}";
  12. //JSON字符串转JSON对象
  13. JSONObject json = JSONObject.fromObject(jsonStr);
  14. //JSON对象 转 JSONModel对象
  15. Map model = (Map) JSONObject.toBean(json, Map.class);
  16. //转成String 方便输出
  17. System.out.printf("json-lib,JSON转Map:%s",JSONObject.fromObject(model).toString());
  18. //json-lib,JSON转Map:{"name":"张三","age":10,"domain":"http://www.sojson.com"}
  19. }

三、json-lib的JSONArray和List的相互转换。

1.List转JSONArray。

  1. /**
  2. * JSON-Lib List转JSONArray
  3. */
  4. @Test
  5. public void list2JSONArray() {
  6. //创建一个List
  7. List list = new ArrayList();
  8. JSONModel model = new JSONModel();
  9. model.setAge(10);
  10. model.setName("张三");
  11. model.setDomain("http://www.sojson.com");
  12. list.add(model);
  13. model = new JSONModel();
  14. model.setAge(25);
  15. model.setName("李四");
  16. model.setDomain("http://ping.sojson.com");
  17. list.add(model);
  18. //List 转 JSONArray
  19. JSONArray jsonArray = JSONArray.fromObject(list);
  20. //JSONArray 转 String
  21. String jsonArrayStr = jsonArray.toString();
  22. //输出
  23. System.out.printf("JSON-Lib List转JSONArray:%s",jsonArrayStr);
  24. //JSON-Lib List转JSONArray:
  25. /*
  26. [
  27. {
  28. "age": 10,
  29. "domain": "http://www.sojson.com",
  30. "name": "张三"
  31. },
  32. {
  33. "age": 25,
  34. "domain": "http://ping.sojson.com",
  35. "name": "李四"
  36. }
  37. ]
  38. */
  39. }

2.JSONArray转List。

  1. /**
  2. * JSON-Lib JSONArray转List
  3. */
  4. @SuppressWarnings("unchecked")
  5. @Test
  6. public void jsonArray2List(){
  7. //刚刚的JSON字符串
  8. //[{"age":10,"domain":"http://www.sojson.com","name":"张三"},{"age":25,"domain":"http://ping.sojson.com","name":"李四"}]
  9. String jsonArrayStr = "[{\"age\":10,\"domain\":\"http://www.sojson.com\",\"name\":\"张三\"},{\"age\":25,\"domain\":\"http://ping.sojson.com\",\"name\":\"李四\"}]";
  10. //json字符串转成JSONArray
  11. JSONArray jsonArray = JSONArray.fromObject(jsonArrayStr);
  12. //JSONArray 转 List
  13. List list = JSONArray.toList(jsonArray, JSONModel.class);
  14. //输出
  15. System.out.printf("JSON-Lib JSONArray转List:\n%s",JSONArray.fromObject(list).toString());
  16. /*
  17. JSON-Lib JSONArray转List:
  18. [{"age":10,"domain":"http://www.sojson.com","name":"张三"},{"age":25,"domain":"http://ping.sojson.com","name":"李四"}]
  19. */
  20. }

这里有一个注意的地方,就是JSONArray.toList()这个方法是过期的。但是不影响使用。

json-lib  介绍到这里就完毕了。然后下面有附件是json-lib 的Jar包。

你可能感兴趣的:(JSON)