一、JavaScript中JSON对象与JSON字符串的相互转换
- jQuery插件支持的转换方式
//将JSON字符串转换成JSON对象
$.parseJSON(jsonStr);
//方式二
jQuery.parseJSON(jsonStr)
效果:
- 浏览器支持的转换方式((Firefox,chrome,opera,safari,ie9,ie8))
JSON.stringify(jsonObj);//将JSON对象转换为JSON字符串
JSON.parse(jsonStr);//将JSON字符串转换为JSON对象
效果:
- Javascript支持的转换方式
/*可以将json字符串转换成json对象,注意需要在json字符外包裹一对小括号*/
eval('(' + jsonStr + ')');
效果:
注:ie8(兼容模式),ie7和ie6也可以使用eval()将字符串转为JSON对象,但不推荐这些方式,这种方式不安全,eval会执行json串中的表达式。
JSON官方的转换方式
http://www.json.org/提供了一个json.js,这样ie8(兼容模式),ie7和ie6就可以支持JSON对象以及其stringify()和parse()方法;可以在https://github.com/douglascrockford/JSON-js上获取到这个js,一般现在用json2.js。
二、Java中JSON对象与JSON字符串的相互转换
- Java对象转换为JSON对象
public void PO2JSONObj(){
User user = new User("1", "yy", '1', "1111111111","a@qq.com", "www.yy.com", 23);
JSONObject object = JSONObject.fromObject(user);
System.out.println(object.toString());
}
- Java数组转换为JSON数组
public void POList2JSONArray(){
ArrayList<User> users = new ArrayList<User>();
User userA = new User("1", "yy", '1', "1111111111","a@qq.com", "www.yy.com", 23);
User userB = new User("2", "cc", '1', "1111111111","a@qq.com", "www.yy.com", 23);
users.add(userA);
users.add(userB);
JSONArray jArray = JSONArray.fromObject(users);
System.out.print(jArray.toString());
}
- JSON字符串转换为Java对象
public void JSONStr2PO(){
String jsonStr = "{'name':'cc'}";
JSONObject jsonObj = JSONObject.fromObject(jsonStr);
User user = (User)JSONObject.toBean(jsonObj,User.class);
System.out.print(user);
}
- JSON字符串转换为Java数组
public void JSONStr2POList(){
String jsonStr = "[{'name':'cc'},{'name':'yy'}]";
JSONArray jsonArray = JSONArray.fromObject(jsonStr);
List<User> users = (List<User>)JSONArray.toCollection(jsonArray);
}