java中FastJson的json类型转换

本文对比了Gson、Jackson和FastJson三大JSON处理库的特点,并深入介绍了FastJson的使用方法,包括对象与JSON之间的转换、日期处理、依赖引用等,提供了丰富的代码示例。

JSON

Gson: 来自Google,功能全面、快速、简洁、面向对象、数据传递和解析方便。

Jackson:来源FasterXML项目,社区活跃,更新快 解析速度和效率比Gson快,但无法按需解析,必须解析所有的KEY,逐层转换。

FastJson: 来自alibaba,性能优秀,但标准性兼容性不如Jackson,对部分特殊字符无法转换,非逐层转换,所以子元素需要再次转换。

FastJson

import com.alibaba.fastjson.JSONObject;
// -> Object
Object parse(String str)
JSONObject parseObject(String str)
JSONArray parseArray(String str)
// -> bean
T parseObject(String text, Class clazz)          //一个bean对象的解析生成
List parseArray(String text, Class clazz)          //多个bean对象的解析生成
// bean -> json
String toJSONString(Object object)
String toJSONString(Object object, boolean prettyFormat)
Object toJSON(Object javaObject)
// json -> date
JSON.toJSONString(resultMap,SerializerFeature.WriteDateUseDateFormat);

引用

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.47</version>
</dependency>

常用类型->JSON

JSONObject object = new JSONObject();
object.put("string","string");
object.put("int",2);
object.put("boolean",true);
List<Integer> integers = Arrays.asList(1,2,3);
object.put("list",integers);
object.put("null",null);
System.out.println(object);
{"boolean":true,"string":"string","list":[1,2,3],"int":2}

 

JSONObject object = JSONObject.parseObject("{\"boolean\":true,\"string\":\"string\",\"list\":[1,2,3],\"int\":2}");
String s = object.getString("string");
System.out.println(s); //String
int i = object.getIntValue("int");
System.out.println(i); //2
boolean b = object.getBooleanValue("boolean");
System.out.println(b); //true
List<Integer> integers = JSON.parseArray(object.getJSONArray("list").toJSONString(),Integer.class);
integers.forEach(System.out::println); //1 2 3
System.out.println(object.getString("null")); //null

API

public class JSONObject extends JSON implements Map<String, Object>, Cloneable, Serializable, InvocationHandler
Method Summary
 voidclear()
           
 Objectclone()
           
 booleancontainsKey(Object key)
           
 booleancontainsValue(Object value)
           
 Set<Map.Entry<String,Object>>entrySet()
           
 booleanequals(Object obj)
           
 Objectget(Object key)
           
 BigDecimalgetBigDecimal(String key)
           
 BigIntegergetBigInteger(String key)
           
 BooleangetBoolean(String key)
           
 booleangetBooleanValue(String key)
           
 BytegetByte(String key)
           
 byte[]getBytes(String key)
           
 bytegetByteValue(String key)
           
 DategetDate(String key)
           
 DoublegetDouble(String key)
           
 doublegetDoubleValue(String key)
           
 FloatgetFloat(String key)
           
 floatgetFloatValue(String key)
           
 IntegergetInteger(String key)
           
 intgetIntValue(String key)
           
 JSONArraygetJSONArray(String key)
           
 JSONObjectgetJSONObject(String key)
           
 LonggetLong(String key)
           
 longgetLongValue(String key)
           
<T> T
getObject(String key, Class<T> clazz)
           
 ShortgetShort(String key)
           
 shortgetShortValue(String key)
           
 DategetSqlDate(String key)
           
 StringgetString(String key)
           
 TimestampgetTimestamp(String key)
           
 inthashCode()
           
 Objectinvoke(Object proxy, Method method, Object[] args)
           
 booleanisEmpty()
           
 Set<String>keySet()
           
 Objectput(String key, Object value)
           
 voidputAll(Map<? extends String,? extends Object> m)
           
 Objectremove(Object key)
           
 intsize()
           
 Collection<Object>values()  

.

转载于:https://www.cnblogs.com/liehen2046/p/11013762.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值