对齐 .NET System.Text.Json: - JsonSerializer.Serialize(obj, JsonOption) / Deserialize<T>(jsonString, JsonOption) - @JsonPropertyName / @JsonIgnore 特性(运行时注解反射) - JsonOption:PropertyNamingPolicy(None/CamelCase/SnakeCase)、ignoreNull、maxDepth - 全反射实现:基础类型/枚举/Option/Array/ArrayList/HashSet/HashMap/嵌套对象 - 仓颉特性适配: * Option 是泛型枚举 → EnumTypeInfo.destruct/construct 处理 * 集合 get(i) 返回 Option<T> → Some/None 解包迭代 * 集合泛型不变 → 反射方法调用(toArray/get/add/keys)而非 cast * as 返回 Option → ?? 解包;JsonKind 用 is 判断 - 已知限制:反序列化需无参构造+var 字段;父类字段不序列化(平台严格类型校验); 枚举按名字;循环引用用深度上限保护 - 已实测:User 完整回环 + 数组/HashMap 回环 + 特性生效
24 lines
946 B
TOML
24 lines
946 B
TOML
[package]
|
|
cjc-version = "1.1.3"
|
|
name = "simapi_serialization"
|
|
description = "SimApi 全反射 JSON 序列化库(对齐 .NET JsonSerializer.Serialize/Deserialize + JsonPropertyName/JsonIgnore 特性)"
|
|
version = "1.0.0"
|
|
target-dir = ""
|
|
output-type = "static"
|
|
|
|
[dependencies]
|
|
|
|
[target]
|
|
[target.x86_64-w64-mingw32]
|
|
compile-option = "-Woff unused --diagnostic-format=noColor -Woff deprecated"
|
|
[target.x86_64-w64-mingw32.bin-dependencies]
|
|
path-option = [ "${CANGJIE_STDX_PATH}" ]
|
|
[target.x86_64-unknown-linux-gnu]
|
|
compile-option = "-Woff unused --diagnostic-format=noColor -Woff deprecated"
|
|
[target.x86_64-unknown-linux-gnu.bin-dependencies]
|
|
path-option = [ "${CANGJIE_STDX_PATH}" ]
|
|
[target.aarch64-unknown-linux-gnu]
|
|
compile-option = "-Woff unused --diagnostic-format=noColor -Woff deprecated"
|
|
[target.aarch64-unknown-linux-gnu.bin-dependencies]
|
|
path-option = [ "${CANGJIE_STDX_PATH}" ]
|