FastJson对JSON的操作

本文详细介绍阿里巴巴FastJSON库的使用方法,包括序列化、反序列化的配置及操作,并提供了多个示例,如日期格式化、使用注解、JavaBean转换等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

官网: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

转载于:https://www.cnblogs.com/Irving/archive/2013/02/19/2917011.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值