FastJson与各种数据之间的转换
/**
* jsonString转化成Map
* */
public void test() {
String s = "{\"id\":\"0375\",\"city\":\"平顶山\"}";
Map<String, Object> map = JSON.parseObject(s);
}
/**
* json字符串转化成List<?>
* */
public void test_7() {
String s = "[{\"id\":\"0375\",\"city\":\"平顶山\"},{\"id\":\"0377\",\"city\":\"南阳\"}]";
List<Weibo> list = JSON.parseArray(s, Weibo.class);
for (Weibo weibo : list) {
System.out.println(weibo.getCity());
}
}
/**
* javaBean转化成json字符串
* */
public void test_9() {
Weibo weibo = new Weibo("123456", "上海");
String string = JSON.toJSONString(weibo);
System.out.println(string);
}
/**
* javaBean转化成json对象[注意:不是字符串]
* */
public void jsonString() {
Weibo weibo = new Weibo("0373", "洛阳");
JSONObject json = (JSONObject) JSON.toJSON(weibo);
System.out.println(json.get("id"));
}
/**
* FastJson提供了SerializerFeature.DisableCircularReferenceDetect这个序列化选项,
* 用来关闭引用检测。 关闭引用检测后,重复引用对象时就不会被$ref代替,
* 但是在循环引用时也会导致StackOverflowError异常
* 未关闭引用检测,转化字符串时会出现$ref 关闭引用检测后,$ref的问题就会被解决
**/
public void jsonString(){
Map<Integer, Object> map = new HashMap<Integer, Object>();
map.put(1, "No.1");
map.put(2, "No.2");
map.put(3, group.getList());
map.put(4, group);
String jsonString = JSON.toJSONString(map, SerializerFeature.DisableCircularReferenceDetect);
System.out.println(jsonString);
}
/**
* json字符串传化为jsonObject对象
*/
public void jsonObject() {
String s = "{\"name\":\"liuzhao\"}";
JSONObject object = JSON.parseObject(s);
System.out.println(object.get("name"));
}
/**
* json字符串转化为java对象
*/
public void javaBean() {
String s = "{\"id\":\"0375\",\"city\":\"平顶山\"}";
Weibo weibo = JSON.parseObject(s, Weibo.class);
System.out.println(weibo.getId());
System.out.println(weibo.getCity());
}