FastJson小结
public static final Object parse(String text); // 把JSON文本parse为JSONObject或者JSONArray public static final JSONObject parseObject(String text); // 把JSON文本parse成JSONObject public static final <T> T parseObject(String text, Class<T> clazz); // 把JSON文本parse为JavaBean public static final JSONArray parseArray(String text); // 把JSON文本parse成JSONArray public static final <T> List<T> parseArray(String text, Class<T> clazz); //把JSON文本parse成JavaBean集合 public static final String toJSONString(Object object); // 将JavaBean序列化为JSON文本 public static final String toJSONString(Object object, boolean prettyFormat); //将JavaBean序列化为带格式的JSON文本 public static final Object toJSON(Object javaObject); //将JavaBean转换为JSONObject或者JSONArraypublic static final <T> T toJavaObject(JSON json, Class<T> clazz) ; //将JsonObject转换为JavaBean?
??3、有关类库的一些说明?SerializeWriter:相当于StringBufferJSONArray:相当于List<Object>JSONObject:相当于Map<String, Object>?JSON反序列化没有真正数组,本质类型都是List<Object>?4、fastjson还有很多很高级的特性,比如支持注解、支持全类型序列化,这些都是很好的特性,功能强大,不在本次测试范围。?下面是一个基于fastJson的json序列化例子
private static class JsonZkSerializer implements ZkSerializer {private static Logger logger = Logger.getLogger(JsonZkSerializer.class);@Overridepublic byte[] serialize(Object data) throws ZkMarshallingError {try {String type = data.getClass().getName();Object jsonObject = JSON.toJSON(data);JSONObject json = new JSONObject();json.put("classType", type);json.put("data", jsonObject);return json.toJSONString().getBytes();} catch (Exception e) {logger.error("JsonZkSerializer serialize error", e);return null;}}@Overridepublic Object deserialize(byte[] bytes) throws ZkMarshallingError {try {String jsonStr = new String(bytes);JSONObject json = (JSONObject) JSON.parse(jsonStr);Class classType = Class.forName(json.get("classType").toString());System.out.println(classType);return JSON.toJavaObject((JSON) json.get("data"), classType);} catch (Exception e) {logger.error(e);return null;}}}??