1、生成Json字符串
JavaBean、Map、List<JavaBean>、List<String>、List<Map<String,Object>>
String jsonString = JSON.toJSONString(obj);
例1:將Map轉(zhuǎn)成JSON字符串
Map<String, Object> map = new HashMap<String, Object>();
map.put("key1", "One");
map.put("key2", "Two");
Object objMap= JSONArray.toJSON(map);
String str= JSON.toJSONString(map);
輸出結(jié)果:
{"key1":"One","key2":"Two"}
例2:自定義JavaBean User轉(zhuǎn)成JSON字符串。
Person person = new Person();
person.setAge(20);
person.setName("Jon");
String str = JSON.toJSONString(person);
輸出結(jié)果:
{"age":"20","name":"Jon"}
例3:List<Map>轉(zhuǎn)成JSON字符串。
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
Map<String, Object> map1 = new HashMap<String, Object>();
map1.put("key1", "One");
map1.put("key2", "Two");
Map<String, Object> map2 = new HashMap<String, Object>();
map2.put("key1", "Three");
map2.put("key2", "Four");
list.add(map1);
list.add(map2);
String listJsonStr = JSON.toJSONString(list);
輸出結(jié)果:
[{"key1":"One","key2":"Two"},{"key3":"Three","key4":"Four"}]
2、解析Json字符串
- Json字符串轉(zhuǎn)JavaBean
Class class= JSON.parseObject(jsonString, Class.class);
Person person = new Person();
person.setAge(20);
person.setName("Jon");
String str = JSON.toJSONString(person);
//轉(zhuǎn)換Person類
Person obj= JSON.parseObject(str , Person.class);
//轉(zhuǎn)換JSONObject對(duì)象
JSONObject obj2= JSON.parseObject(str);
- List<JavaBean>
List<Class> class=JSON.parseArray((jsonString, Class.class);
- List<String>
List<String> listString = JSON.parseArray(jsonString, String.class);
- List<Map<String,Object>>
List<Map> listString = JSON.parseArray(jsonString, String.class);
3、前端字符串轉(zhuǎn)JSON
- jQuery插件支持的轉(zhuǎn)換方式:
$.parseJSON( jsonstr );
function strToJson(str) {
return JSON.parse(str);
}
- 瀏覽器支持的轉(zhuǎn)換方式(Firefox,chrome,opera,safari,ie9,ie8)等瀏覽器:
注:ie8(兼容模式),ie7和ie6沒(méi)有JSON對(duì)象,推薦采用JSON官方的方式,引入json.js。
JSON.parse(jsonstr); //可以將json字符串轉(zhuǎn)換成json對(duì)象
JSON.stringify(jsonobj); //可以將json對(duì)象轉(zhuǎn)換成json對(duì)符串
- Javascript支持的轉(zhuǎn)換方式:
eval('(' + jsonstr + ')');
function strToJson(str) {
var json = eval('(' + str + ')');
return json;
}
new Function形式,比較怪異
function strToJson(str) {
var json = (new Function("return " + str))();
return json;
}