json对象和字符串的互相转化
1、前端的json处理
JSON字符串:
var str = '{ "name": "cxh", "sex": "man" }';
JSON对象:
var obj= { "name": "cxh", "sex": "man" };
jQuery的转换方式
$.parseJSON( jsonstr ); //jQuery.parseJSON(jsonstr),可以将json字符串转换成json对象
浏览器支持的转换方式(Firefox,chrome,opera,safari,ie9,ie8)等浏览器:
JSON.parse(jsonstr); //可以将json字符串转换成json对象
JSON.stringify(jsonobj); //可以将json对象转换成json对符串
注:ie8(兼容模式),ie7和ie6没有JSON对象,推荐采用JSON官方的方式,引入json.js。
str.parseJson(str);//可以将json字符串转换成json对象
obj.toJSONString(); //将JSON对象转化为JSON字符
注:新版本的 JSON 修改了 API,将 JSON.stringify() 和 JSON.parse() 两个方法都注入到了 Javascript 的内建对象里面,前者变成了 Object.toJSONString(),而后者变成了 String.parseJSON()。如果提示找不到toJSONString()和parseJSON()方法,则说明您的json包版本太低
Javascript支持的转换方式
eval('(' + jsonstr + ')'); //可以将json字符串转换成json对象
注:ie8(兼容模式),ie7和ie6也可以使用eval()将字符串转为JSON对象。 但是不建议使用这种,很不安全。
2、Java中的json处理
User.java 对象
1 public class User { 2 private String name; 3 4 private String password; 5 6 private int age; 7 8 private Integer score; 9 10 public User() { 11 } 12 13 public User(String name, String password, int age, Integer score) { 14 this.name = name; 15 this.password = password; 16 this.age = age; 17 this.score = score; 18 } 19 20 public int getAge() { 21 return age; 22 } 23 24 public String getName() { 25 return name; 26 } 27 28 public String getPassword() { 29 return password; 30 } 31 32 public Integer getScore() { 33 return score; 34 } 35 36 public void setAge(int age) { 37 this.age = age; 38 } 39 40 public void setName(String name) { 41 this.name = name; 42 } 43 44 public void setPassword(String password) { 45 this.password = password; 46 } 47 48 public void setScore(Integer score) { 49 this.score = score; 50 } 51 52 public String toString() { 53 return "[name=" + name + ", password=" + password + ", age=" + age + ", score=" + score + "]"; 54 } 55 56 }
把java对象转换成json对象,并转化为字符串
1 @Test 2 public void javaToStringInJsonObject() { 3 User user = new User("YuB", "123", 25, 100); 4 System.out.println("java对象:" + user); 5 JSONObject json = JSONObject.fromObject(user); 6 System.out.println("转化为json字符串:" + json.toString()); 7 }
输出结果:
java对象:[name=YuB, password=123, age=25, score=100]
转化为json字符串:{"age":25,"name":"YuB","password":"123","score":100}
把JSON字符串转换为JAVA 对象
1 @Test 2 public void javaFormStringInJsonObject() { 3 String jsonStr = "{\"age\":25,\"name\":\"YuB\",\"password\":\"123\",\"score\":100}";//使用 \ 来转义双引号 4 System.out.println("json字符串为:" + jsonStr); 5 JSONObject json = JSONObject.fromObject(jsonStr); 6 User user = (User) JSONObject.toBean(json, User.class); 7 System.out.println("转化为java对象:" + user); 8 }
输出结果:
json字符串为:{"age":25,"name":"YuB","password":"123","score":100}
转化为user对象:[name=YuB, password=123, age=25, score=100]
把java 对象列表转换为json对象数组,并转为字符串
1 @Test 2 public void javaArrayToStringInJsonArray() { 3 User user = new User("YuB", "123", 25, 100); 4 ArrayList<User> list = new ArrayList<>(); 5 list.add(user); 6 System.out.println("java对象:" + list); 7 JSONArray json = JSONArray.fromObject(list); 8 System.out.println("转化为json字符串:" + json); 9 }
输出结果:
java对象:[[name=YuB, password=123, age=25, score=100]]
转化为json字符串:[{"age":25,"name":"YuB","password":"123","score":100}]
把JSON字符串转换为JAVA 对象数组
1 @Test 2 public void javaArrayFormStringInJsonArray() { 3 String jsonStr = "[{\"age\":25,\"name\":\"YuB\",\"password\":\"123\",\"score\":100}]"; 4 System.out.println("json字符串为:" + jsonStr); 5 JSONArray json = JSONArray.fromObject(jsonStr); 6 List<User> list = (List<User>) JSONArray.toCollection(json, User.class); 7 System.out.println("转化为java对象:" + list); 8 }
输出结果:
json字符串为:[{"age":25,"name":"YuB","password":"123","score":100}]
转化为user对象:[[name=YuB, password=123, age=25, score=100]]
总结:在Java中,Java对象和json格式的字符串的相互转化需要借助json对象作为过渡!
posted on 2017-06-21 09:50 HelloMyWord 阅读(262) 评论(0) 收藏 举报
浙公网安备 33010602011771号