Fastjson FAQ
Fastjson FAQ 목록
1. fastjson을 얻는 방법?
다음 위치에서 fastjson을 다운로드할 수 있습니다:
- maven 중앙 저장소: http://central.maven.org/maven2/com/alibaba / fastjson/
- Sourceforge.net: https://sourceforge.net/projects/fastjson/files/
- Maven에서 fastjson 종속성을 구성하는 방법 최신 버전의 fastjson이 Maven 중앙 창고에 출시될 예정이며, 직접적으로 의존할 수 있습니다.
<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.21</version> </dependency>
android version
<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.1.55.android</version> </dependency>
2. fastjson의 주요 API는 무엇인가요?
fastjson의 입구 클래스는 com.alibaba.fastjson.JSON이고, 주요 API는 JSON.toJSONString, ParseObject입니다.
package com.alibaba.fastjson; public abstract class JSON { public static final String toJSONString(Object object); public static final <T> T parseObject(String text, Class<T> clazz, Feature... features); }
직렬화:
String jsonString = JSON.toJSONString(obj);
역직렬화:
VO vo = JSON.parseObject("...", VO.class);
일반 역직렬화:
import com.alibaba.fastjson.TypeReference;List<VO> list = JSON.parseObject("...", new TypeReference<List<VO>>() {});
3.
fastj son 사용 예 여기를 보세요: 샘플- DataBind
4. fastjson의 성능은 어떤가요?
Fastjson은 현재 Java 언어에서 가장 빠른 json 라이브러리로, 가장 빠르다고 주장하는 Jackson보다 빠릅니다. 여기에서 fastjson 성능 비교를 확인하세요.
자체 성능 테스트를 할 때는 순환 참조 감지 기능을 끄세요.
JSON.toJSONString(obj, SerializerFeature.DisableCircularReferenceDetect)VO vo = JSON.parseObject("...", VO.class, Feature.DisableCircularReferenceDetect)
다음은 jackson 작성자 cowtowncoder 및 기타 사람들의 fastjson 성능 평가입니다: https://groups.google.com/forum/#!topic/java-serialization-benchmarking/8eS1KOquAhw
5. 비율 gson은 어때요?
fastjson은 gson보다 약 6배 빠릅니다. 테스트 결과는 다음과 같습니다. 성능 테스트 비교. gson의 g는 거북이 속도 json 라이브러리인 "turtle" pinyin의 약어일 수 있습니다.
6. fastjson을 안드로이드에서 실행할 수 있나요?
fastjson에는 일반적이지 않은 기능을 제거하는 Android용 특수 버전이 있습니다. jar이 차지하는 바이트 수가 더 적습니다. Git 브랜치 주소는 https://github.com/alibaba/fastjson/tree/android입니다.
7. fastjson 직렬화는 json-lib와 같은 Java Bean 직렬화를 구성해야 합니까?
아니요. fastjson의 직렬화 및 역직렬화에는 특별한 구성이 필요하지 않습니다. 유일한 요구 사항은 직렬화하는 클래스가 Java Bean 사양을 준수해야 한다는 것입니다.
8. fastjson이 날짜를 처리하는 방법
fastjson의 날짜 처리 API는 매우 간단합니다. 예:
JSON.toJSONStringWithDateFormat(date, "yyyy-MM-dd HH:mm:ss.SSS")
ISO-8601 날짜 형식 사용
JSON.toJSONString(obj, SerializerFeature.UseISO8601DateFormat);
날짜 형식을 전역적으로 수정
JSON.DEFFAULT_DATE_FORMAT = "yyyy-MM-dd";JSON.toJSONString(obj, SerializerFeature.WriteDateUseDateFormat);
역직렬화는 다음 날짜 형식을 자동으로 인식할 수 있습니다:
- ISO-8601 날짜 형식
- yyyy-MM-dd
- yyyy-MM-dd HH:mm:ss
- yyyy-MM-dd HH:mm:ss. SSS
- 밀리초 숫자
- 밀리초 숫자 문자열
- .NET JSON 날짜 형식
- 새 날짜(198293238)
9. 직렬화를 사용자 정의하는 방법은 무엇입니까?
SimplePrePropertyFilter를 사용하여 필드를 필터링할 수 있습니다. 자세한 내용은 여기를 참조하세요: https://github.com/alibaba/fastjson/wiki/%E4%BD%BF%E7%94%A8SimplePropertyPreFilter%E8%BF%87%E6% BB% A4%E5%B1%9E%E6%80%A7
사용자 지정 직렬화에 대한 자세한 소개는 여기를 참조하세요. Fastjson 사용자 지정 직렬화
10. 개체에 참조가 있는 경우 직렬화된 결과는 다음과 같습니다. 브라우저 지원에 표시됩니다. 어떻게 해야 하나요?
참조 감지 및 생성을 끄려면 SerializerFeature.DisableCircularReferenceDetect 속성을 사용하세요. 예:
String jsonString = JSON.toJSONString(obj, SerializerFeature.DisableCircularReferenceDetect);
11. IE 6에서는 중국어 문자열이 포함된 JSON을 지원하지 않습니다. 어떻게 해야 하나요?
fastjson은 BrowserCompatible 구성을 제공합니다. 모든 중국어는 uXXXX 형식으로 직렬화되지만 IE 6과 호환됩니다.
String jsonString = JSON.toJSONString(obj, SerializerFeature.BrowserCompatible);
12. fastjson이 Stream API를 제공하는 방법
fastjson은 여기를 참조하세요. Fastjson Stream api
13은 @JSONField를 사용하여 직렬화를 맞춤화합니다.
fastjson은 사용법 주석을 제공합니다. 직렬화 및 역직렬화 기능을 사용자 정의합니다. Fastjson JSONField