TheOldDriver
9/15/2017 - 3:51 AM

FastJson数据解析

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());
}