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