refactor: 全框架 JSON 操作迁移到 simapi_serialization
- 依赖:新增 simapi_serialization path 依赖(保留 soulsoft_serialization 供 soulsoft web 栈传递使用) - SimApiJson.json / SimApiUtil.json → JsonSerializer.Serialize - SimApiUtil.fromJson / base64DecodeTo → JsonSerializer.Deserialize(去 ISerialization 约束) - SimApiHttpClient signQuery/aesQuery/aesSignQuery/query → 去约束,反序列化换新库 - SimApiBaseResponse/SimApiDataResponse/SimApiLoginItem/AesBodyRequest/AuthSDK DTO → 去 @Serialization 宏/去 soulsoft 接口,改纯 POCO(simapi_serialization 反射) - SimApiBaseResponse 标 @SerializerParent:子类响应序列化包含 _code/_message - SimApiResultWriter / SimApiExceptionMiddleware → 响应输出走 simapi_serialization(统一 _code/_message 格式) - SimApiRequestLogMiddleware 截断 → Deserialize<HashMap<String,Any>> + 重序列化 - SimApiAuthDto JsonValue 字段 → HashMap<String,Any>;SimApiCache.get<T> 去约束 - webdemo:AuthController readFromJson 换 Deserialize;cjpm.toml 补依赖 - 验证:webdemo 启动正常,GET/POST 接口响应格式统一,S3 存储全链路 OK
This commit is contained in:
@@ -11,9 +11,8 @@ import std.random.*
|
||||
import stdx.crypto.digest.*
|
||||
import stdx.encoding.hex.*
|
||||
import stdx.encoding.base64.*
|
||||
import stdx.encoding.json.*
|
||||
import std.regex.*
|
||||
import soulsoft_serialization.*
|
||||
import simapi_serialization.*
|
||||
import simapi.communications.*
|
||||
import simapi.macros.*
|
||||
|
||||
@@ -181,12 +180,12 @@ public class SimApiUtil {
|
||||
|
||||
/**
|
||||
* 从 JSON 字符串反序列化为 T(对齐 C# SimApiUtil.FromJson<T>)。
|
||||
* @param T 目标类型(需实现 ISerialization<T>,如 @Serialization DTO、基础类型等)。
|
||||
* @param T 目标类型(任意类,无需接口/宏约束)。
|
||||
* @param jsonString JSON 字符串。
|
||||
* @return 反序列化结果。
|
||||
*/
|
||||
public static func fromJson<T>(jsonString: String): T where T <: ISerialization<T> {
|
||||
JsonSerializer.deserializeObject<T>(jsonString)
|
||||
public static func fromJson<T>(jsonString: String): T {
|
||||
JsonSerializer.Deserialize<T>(jsonString)
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -195,21 +194,17 @@ public class SimApiUtil {
|
||||
* @return Base64 字符串。
|
||||
*/
|
||||
public static func base64Encode(obj: Any): String {
|
||||
let json = if (let ser: ISerializable <- obj) {
|
||||
ser.serializeObject().toJson().toString()
|
||||
} else {
|
||||
SimApiJson.json(Some(obj))
|
||||
}
|
||||
let json = SimApiJson.json(Some(obj))
|
||||
base64Encode(json)
|
||||
}
|
||||
|
||||
/**
|
||||
* Base64 → JSON → T 反序列化(对齐 C# Base64Decode<T>)。
|
||||
* @param T 目标类型(需实现 ISerialization<T>)。
|
||||
* @param T 目标类型(任意类,无需接口/宏约束)。
|
||||
* @param base64Str Base64 字符串。
|
||||
* @return 反序列化结果。
|
||||
*/
|
||||
public static func base64DecodeTo<T>(base64Str: String): T where T <: ISerialization<T> {
|
||||
public static func base64DecodeTo<T>(base64Str: String): T {
|
||||
fromJson<T>(base64Decode(base64Str))
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user