FastJson對JSON的操作


官網:http://code.alibabatech.com/wiki/display/FastJSON/Home
示例:http://code.alibabatech.com/wiki/display/FastJSON/Examples
下載:http://code.alibabatech.com/wiki/display/FastJSON/Download

同等alibaba還有Cobar,Druid連接池等 http://code.alibabatech.com/wiki/dashboard.action

日期問題:

一種通過注解

@JSONField (format="yyyy-MM-dd HH:mm")

另一種

   private static SerializeConfig mapping;
    @SuppressWarnings("unused")
    private static String dateFormat;
    static {

        dateFormat = "yyyy-MM-dd HH:mm:ss";
    }
使用單引號
Object o = ...;
String text = JSON.toJSONString(o, SerializerFeature.UseSingleQuotes);
使用@JSONField Annotation
public class User {
    @JSONField(name="ID")
    public int getId() { ... }
}
 
User user = ...;
JSON.toJSONString(user); // {"ID":234}
Class信息反序列化

將"JSON文本"反序列化為"Java Bean"

String text = ...; // {"r":255,"g":0,"b":0,"alpha":255}
Color color = JSON.parseObject(text, Color.class);

類型集合的反序列化

String text = ...; // [{ ... }, { ... }]
List<User> users = JSON.parseArray(text, User.class);

泛型的反序列化

如果你需要返回一個帶泛型的對象,例如List<User>、Map<String, User>,你可以使用TypeReference來傳入類型信息。

String text = ...; // {"name":{"name":"ljw",age:18}}
Map<String, User> userMap = JSON.parseObject(text, new TypeReference<Map<String, User>>() {});

其他的沒有什么好說的,看一下API就好

package com.alibaba.fastjson;
 
public abstract class JSON {
    public static final String toJSONString(Object object); // 序列化
    public static final Object parse(String text); // 反序列化
    public static final <T> T parseObject(String text, Class<T> clazz); // 帶類型參數的反序列化
}

其實不需要封裝了

/**
 * 版權所有 All Rights Reserved
 * 
 * @author Irving
 * @date 2013年2月19日11:31:26
 * @version 1.0.0
 * @email zhouyongtao#outlook.com
 */
@SuppressWarnings("unchecked")
public class JsonUtil {
    private static SerializeConfig mapping;
    @SuppressWarnings("unused")
    private static String dateFormat;
    static {

        dateFormat = "yyyy-MM-dd HH:mm:ss";
    }

    /**
     * 默認處理時間
     * 
     * @param jsonText
     * @return
     */
    public static String toJSON(Object jsonText) {
        return JSON.toJSONString(jsonText,
                SerializerFeature.WriteDateUseDateFormat);
    }

    /**
     * 自定義時間格式
     * 
     * @param jsonText
     * @return
     */
    public static String toJSON(String dateFormat, String jsonText) {
        mapping.put(Date.class, new SimpleDateFormatSerializer(dateFormat));
        return JSON.toJSONString(jsonText, mapping);
    }

    /**
     * 轉換JSON 集合
     * 
     * @param jsonText
     * @param clazz
     * @return
     */
    public static <T> T parseJSON(String jsonText, Class<T> clazz) {
        return (T) JSON.parseArray(jsonText, clazz);
    }
}

Link

http://www.cnblogs.com/zhenmingliu/archive/2011/12/29/2305775.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM