Fastjson提供Android版本。
和標準版本相比,Android版本去掉一些Android虛擬機dalvik不支持的功能,使得jar更小,同時針對dalvik做了很多性能優(yōu)化,包括減少方法調用等。
parse為JSONObject/JSONArray時比原生org.json速度快,序列化反序列化JavaBean性能比jackson/gson性能更好。
通過 Maven:
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>VERSION_CODE</version>
</dependency>
或者 Gradle:
compile 'com.alibaba:fastjson:VERSION_CODE'
用 這里 或者 這里 或者 這里 的真實發(fā)行版本號, 替換 VERSION_CODE
, 例如 1.1.54.android
Dalvik虛擬機的字節(jié)碼格式和Java SE不一樣,目前的ASM動態(tài)優(yōu)化無法在Android上實現(xiàn)。
Android上的Dalvik虛擬機不支持awt,所以去掉標準版本的awt相關類序列化和反序列化的支持。
AtomicXXX不應該作為POJO的屬性,不常用,所以在Android版本中去掉了。
這個功能用于web jsonp數據生成,不常用于android客戶端,所以去掉。
public abstract class JSON {
public static parseObject(byte[] input, int off, int len, CharsetDecoder charsetDecoder, Type clazz,
Feature... features) { ... }
public static Object parse(byte[] input, int off, int len, CharsetDecoder charsetDecoder,
int features) {}
public static Object parse(byte[] input, int off, int len, CharsetDecoder charsetDecoder,
Feature...features) {}
public static Object parse(byte[] input, int off, int len, CharsetDecoder charsetDecoder,
int features) {}
}
// JSONSerializerMap已廢棄,不支持
com.alibaba.fastjson.serializer.JSONSerializer.JSONSerializer(JSONSerializerMap)
com.alibaba.fastjson.parser.JavaBeanMapping 使用com.alibaba.fastjson.parser.ParserConfig代替
com.alibaba.fastjson.serializer.JSONSerializerMap 使用com.alibaba.fastjson.serializer.SerializeConfig代替
com.alibaba.fastjson.parser.DefaultExtJSONParser 使用com.alibaba.fastjson.parser.DefaultJSONParser代替
class com.alibaba.fastjson.JSONWriter {
@Deprecated
public void writeStartObject();
@Deprecated
public void writeEndObject();
@Deprecated
public void writeStartArray();
@Deprecated
public void writeEndArray();
}
更多建議: