FASTJSON 2
เป็นไลบรารี Java JSON ที่มีประสิทธิภาพสูงและใช้งานง่าย
FASTJSON 2
เป็นการอัปเกรดที่สำคัญของโปรเจ็กต์ FASTJSON
เมื่อเปรียบเทียบกับ FASTJSON 1 ประสิทธิภาพได้รับการปรับปรุงอย่างมาก และปัญหาด้านความปลอดภัยของฟังก์ชัน autoType เนื่องจากความเข้ากันได้และไวท์ลิสต์ได้รับการแก้ไขแล้วJDK 11
/ JDK 17
ปรับให้เหมาะสมสำหรับ compact string
รองรับบันทึก รองรับ GraalVM Native-Image
JSONPath
อย่างสมบูรณ์ รองรับไวยากรณ์ SQL:2016 JSONPathAndroid 8+
ซึ่งเป็นชุด API สำหรับไคลเอนต์และเซิร์ฟเวอร์Kotlin
https://alibaba.github.io/fastjson2/kotlin_cnJSON Schema
https://alibaba.github.io/fastjson2/json_schema_cn ใน fastjson v2
นั้น groupId
จะแตกต่างจาก 1.x
มันคือ com.alibaba.fastjson2
:
Maven
:
< dependency >
< groupId >com.alibaba.fastjson2</ groupId >
< artifactId >fastjson2</ artifactId >
< version >2.0.53</ version >
</ dependency >
Gradle
:
dependencies {
implementation ' com.alibaba.fastjson2:fastjson2:2.0.53 '
}
คุณสามารถดูเวอร์ชันล่าสุดได้ที่ maven.org
Fastjson v1
หากคุณใช้เวอร์ชัน fastjson 1.2.x
ในตอนแรก คุณสามารถใช้แพ็คเกจความเข้ากันได้ได้ ไม่สามารถรับประกันความเข้ากันได้ 100% โปรดทดสอบและตรวจสอบอย่างละเอียดและให้ข้อเสนอแนะในเวลาที่เหมาะสม หากคุณพบปัญหาใดๆ
Maven
:
< dependency >
< groupId >com.alibaba</ groupId >
< artifactId >fastjson</ artifactId >
< version >2.0.53</ version >
</ dependency >
Gradle
:
dependencies {
implementation ' com.alibaba:fastjson:2.0.53 '
}
Fastjson Kotlin
หากโปรเจ็กต์ใช้ Kotlin
คุณสามารถใช้โมดูล fastjson-kotlin
และรับคุณสมบัติของ kotlin
มาใช้
Maven
: < dependency >
< groupId >com.alibaba.fastjson2</ groupId >
< artifactId >fastjson2-kotlin</ artifactId >
< version >2.0.53</ version >
</ dependency >
เพิ่มไลบรารีมาตรฐาน (kotlin-stdlib) และไลบรารีการสะท้อน (kotlin-reflect) ตามความเหมาะสม หากคุณใช้คลาสข้อมูล (คลาสข้อมูล) และส่งพารามิเตอร์ผ่านตัวสร้าง ให้เพิ่มไลบรารีการสะท้อน
< dependency >
< groupId >org.jetbrains.kotlin</ groupId >
< artifactId >kotlin-stdlib</ artifactId >
< version >${kotlin-version}</ version >
</ dependency >
< dependency >
< groupId >org.jetbrains.kotlin</ groupId >
< artifactId >kotlin-reflect</ artifactId >
< version >${kotlin-version}</ version >
</ dependency >
Kotlin Gradle
: dependencies {
implementation( " com.alibaba.fastjson2:fastjson2-kotlin:2.0.53 " )
}
dependencies {
implementation( " org.jetbrains.kotlin:kotlin-stdlib: $kotlin_version " )
implementation( " org.jetbrains.kotlin:kotlin-reflect: $kotlin_version " )
}
Fastjson Extension
หากโปรเจ็กต์ใช้เฟรมเวิร์ก เช่น SpringFramework
คุณสามารถใช้โมดูล fastjson-extension
ได้ สำหรับการใช้งาน โปรดดูที่ SpringFramework Support
Maven
:
< dependency >
< groupId >com.alibaba.fastjson2</ groupId >
< artifactId >fastjson2-extension-spring5</ artifactId >
< version >2.0.53</ version >
</ dependency >
< dependency >
< groupId >com.alibaba.fastjson2</ groupId >
< artifactId >fastjson2-extension-spring6</ artifactId >
< version >2.0.53</ version >
</ dependency >
Gradle
:
dependencies {
implementation ' com.alibaba.fastjson2:fastjson2-extension-spring5:2.0.53 '
}
dependencies {
implementation ' com.alibaba.fastjson2:fastjson2-extension-spring6:2.0.53 '
}
ใน fastjson v2
package
จะแตกต่างจาก 1.x
คือ com.alibaba.fastjson2
หากคุณเคยใช้ fastjson1
มาก่อน ในกรณีส่วนใหญ่ คุณสามารถเปลี่ยนชื่อแพ็คเกจได้
JSON
ลงใน JSONObject
Java
:
String text = "..." ;
JSONObject data = JSON . parseObject ( text );
byte [] bytes = ...;
JSONObject data = JSON . parseObject ( bytes );
Kotlin
:
import com.alibaba.fastjson2.*
val text = .. . // String
val data = text.parseObject()
val bytes = .. . // ByteArray
val data = bytes.parseObject() // JSONObject
JSON
ลงใน JSONArray
Java
:
String text = "..." ;
JSONArray data = JSON . parseArray ( text );
Kotlin
:
import com.alibaba.fastjson2.*
val text = .. . // String
val data = text.parseArray() // JSONArray
JSON
ลงในวัตถุ Java
Java
:
String text = "..." ;
User data = JSON . parseObject ( text , User . class );
Kotlin
:
import com.alibaba.fastjson2.*
val text = .. . // String
val data = text.to< User >() // User
val data = text.parseObject< User >() // User
Java
เป็นอนุกรมเป็น JSON
Java
:
Object data = "..." ;
String text = JSON . toJSONString ( data );
byte [] text = JSON . toJSONBytes ( data );
Kotlin
:
import com.alibaba.fastjson2.*
val data = .. . // Any
val text = text.toJSONString() // String
val bytes = text.toJSONByteArray() // ByteArray
JSONObject
และ JSONArray
String text = "{ " id " : 2, " name " : " fastjson2 " }" ;
JSONObject obj = JSON . parseObject ( text );
int id = obj . getIntValue ( "id" );
String name = obj . getString ( "name" );
String text = "[2, " fastjson2 " ]" ;
JSONArray array = JSON . parseArray ( text );
int id = array . getIntValue ( 0 );
String name = array . getString ( 1 );
JavaBean
Java
:
JSONArray array = ...
JSONObject obj = ...
User user = array . getObject ( 0 , User . class );
User user = obj . getObject ( "key" , User . class );
Kotlin
:
val array = .. . // JSONArray
val obj = .. . // JSONObject
val user = array.to< User >( 0 )
val user = obj.to< User >( " key " )
JavaBean
Java
:
JSONArray array = ...
JSONObject obj = ...
User user = obj . toJavaObject ( User . class );
List < User > users = array . toJavaList ( User . class );
Kotlin
:
val array = .. . // JSONArray
val obj = .. . // JSONObject
val user = obj.to< User >() // User
val users = array.toList< User >() // List<User>
JavaBean
เป็นอนุกรมเป็น JSON
Java
:
class User {
public int id ;
public String name ;
}
User user = new User ();
user . id = 2 ;
user . name = "FastJson2" ;
String text = JSON . toJSONString ( user );
byte [] bytes = JSON . toJSONBytes ( user );
Kotlin
:
class User (
var id : Int ,
var name : String
)
val user = User ()
user.id = 2
user.name = " FastJson2 "
val text = user.toJSONString() // String
val bytes = user.toJSONByteArray() // ByteArray
ผลลัพธ์การทำให้เป็นอนุกรม:
{
"id" : 2 ,
"name" : " FastJson2 "
}
JSONB
JavaBean
เป็นอนุกรม JSONB
User user = ...;
byte [] bytes = JSONB . toBytes ( user );
byte [] bytes = JSONB . toBytes ( user , JSONWriter . Feature . BeanToArray );
JSONB
ลงใน JavaBean
byte [] bytes = ...
User user = JSONB . parseObject ( bytes , User . class );
User user = JSONB . parseObject ( bytes , User . class , JSONReader . Feature . SupportBeanArrayMapping );
JSONPath
JSONPath
เพื่ออ่านข้อมูลบางส่วน String text = ...;
JSONPath path = JSONPath . of ( "$.id" ); // 缓存起来重复使用能提升性能
JSONReader parser = JSONReader . of ( text );
Object result = path . extract ( parser );
JSONPath
เพื่ออ่านข้อมูล byte[]
บางส่วน byte [] bytes = ...;
JSONPath path = JSONPath . of ( "$.id" ); // 缓存起来重复使用能提升性能
JSONReader parser = JSONReader . of ( bytes );
Object result = path . extract ( parser );
JSONPath
เพื่ออ่านข้อมูล byte[]
บางส่วน byte [] bytes = ...;
JSONPath path = JSONPath . of ( "$.id" ); // 缓存起来重复使用能提升性能
JSONReader parser = JSONReader . ofJSONB ( bytes ); // 注意这里使用ofJSONB方法
Object result = path . extract ( parser );