Files
serialization-cj/src/JsonOption.cj
T

41 lines
1.2 KiB
Plaintext
Raw Normal View History

/*
* Copyright (c) 2025 SimcuTeam. All rights reserved.
* JsonOption:序列化选项(对齐 .NET JsonSerializerOptions)。
*/
package simapi_serialization
/**
* 属性命名策略(对齐 .NET JsonNamingPolicy)。
*/
public enum PropertyNamingPolicy {
/// 字段名原样(_username → _username
| None
/// 去前导下划线 + 首字母小写(_username → username,对齐 simapi/soulsoft 默认)
| CamelCase
/// 蛇形(userName → user_name_username → username
| SnakeCase
}
/**
* 序列化选项。
*/
public class JsonOption {
/// 属性命名策略(默认 CamelCase)
public var propertyNamingPolicy: PropertyNamingPolicy = PropertyNamingPolicy.CamelCase
/// 序列化时是否忽略 null/None 字段(默认 falseNone 输出 null
public var ignoreNull: Bool = false
/// 枚举序列化为名字(默认 true;false 暂按名字输出,数字模式后续支持)
public var enumAsString: Bool = true
/// 递归深度上限(默认 64)
public var maxDepth: Int64 = 64
public init() {}
/// 默认选项实例
public static let instance = JsonOption()
}