类
class DataModel
public abstract class DataModel
功能:此类为中间数据层。
class DataModelBool
public class DataModelBool <: DataModel {
public init(bv: Bool)
}
功能:此类为 DataModel 的子类,实现对 Bool 类型数据的封装。
父类型:
init(Bool)
public init(bv: Bool)
功能:构造一个具有初始数据的 DataModelBool 实例。
参数:
- bv: Bool - 传入的 Bool 类型的数据。
示例:
import stdx.serialization.serialization.*
main() {
// 创建DataModelBool实例
let dataModel = DataModelBool(true)
return 0
}
func getValue()
public func getValue(): Bool
功能:获取 DataModelBool 中的数据。
返回值:
- Bool - DataModelBool 中类型为 Bool 的
value数值。
示例:
import stdx.serialization.serialization.*
main() {
// 创建DataModelBool实例
let dataModel = DataModelBool(false)
// 获取布尔值
let value = dataModel.getValue()
println("获取到的布尔值: ${value}")
return 0
}
运行结果:
获取到的布尔值: false
class DataModelFloat
public class DataModelFloat <: DataModel {
public init(fv: Float64)
public init(v: Int64)
}
功能:此类为 DataModel 的子类,实现对 Float64 类型数据的封装。
父类型:
init(Float64)
public init(fv: Float64)
功能:构造一个具有初始数据的 DataModelFloat 实例。
参数:
- fv: Float64 - 传入的 Float64 类型的数据。
示例:
import stdx.serialization.serialization.*
main() {
// 创建DataModelFloat实例
let dataModel = DataModelFloat(3.14)
return 0
}
init(Int64)
public init(v: Int64)
功能:构造一个具有初始数据的 DataModelFloat 实例。
参数:
- v: Int64 - 传入的 Int64 类型的数据。
示例:
import stdx.serialization.serialization.*
main() {
// 使用Int64参数创建DataModelFloat实例
let dataModel = DataModelFloat(100)
return 0
}
func getValue()
public func getValue(): Float64
功能:获取 DataModelFloat 中的数据。
返回值:
- Float64 - DataModelFloat 中类型为 Float64 的
value数值。
示例:
import stdx.serialization.serialization.*
main() {
// 创建DataModelFloat实例,使用浮点数
var dataModel = DataModelFloat(3.14)
// 获取浮点数值
let value = dataModel.getValue()
println("获取到的浮点数值: ${value}")
// 创建DataModelFloat实例,使用整数
dataModel = DataModelFloat(3)
println("获取到的浮点数值: ${dataModel.getValue()}")
return 0
}
运行结果:
获取到的浮点数值: 3.140000
获取到的浮点数值: 3.000000
class DataModelInt
public class DataModelInt <: DataModel {
public init(iv: Int64)
}
功能:此类为 DataModel 的子类,实现对 Int64 类型数据的封装。
父类型:
init(Int64)
public init(iv: Int64)
功能:构造一个具有初始数据的 DataModelInt 实例。
参数:
- iv: Int64 - 传入的 Int64 类型的数据。
示例:
import stdx.serialization.serialization.*
main() {
// 创建DataModelInt实例
let dataModel = DataModelInt(42)
return 0
}
func getValue()
public func getValue(): Int64
功能:获取 DataModelInt 中的数据。
返回值:
- Int64 - DataModelInt 中类型为 Int64 的
value数值。
示例:
import stdx.serialization.serialization.*
main() {
// 创建DataModelInt实例
let dataModel = DataModelInt(123)
// 获取整数值
let value = dataModel.getValue()
println("获取到的整数值: ${value}")
return 0
}
运行结果:
获取到的整数值: 123
class DataModelNull
public class DataModelNull <: DataModel
功能:此类为 DataModel 的子类,实现对 Null 类型数据的封装。
父类型:
class DataModelSeq
public class DataModelSeq <: DataModel {
public init()
public init(list: ArrayList<DataModel>)
}
功能:此类为 DataModel 的子类,实现对 ArrayList<DataModel> 类型数据的封装。
父类型:
init()
public init()
功能:构造一个参数为空的 DataModelSeq 实例。其中的数据默认为空的 ArrayList<DataModel>。
示例:
import stdx.serialization.serialization.*
main() {
// 创建空参数的DataModelSeq实例
let dataModel = DataModelSeq()
return 0
}
init(ArrayList<DataModel>)
public init(list: ArrayList<DataModel>)
功能:构造一个具有初始数据的 DataModelSeq 实例。
参数:
示例:
import stdx.serialization.serialization.*
import std.collection.*
main() {
// 创建一个ArrayList并添加一些DataModel
let list = ArrayList<DataModel>()
list.add(DataModelString("元素1"))
list.add(DataModelString("元素2"))
// 使用ArrayList创建DataModelSeq实例
let dataModel = DataModelSeq(list)
// 反序列化
let array = Array<String>.deserialize(dataModel)
println("查看数据: ${array}")
return 0
}
运行结果:
查看数据: [元素1, 元素2]
func add(DataModel)
public func add(dm: DataModel): Unit
功能:在 DataModelSeq 末尾增加一个 DataModel 数据。
参数:
示例:
import stdx.serialization.serialization.*
import std.collection.*
main() {
// 创建DataModelSeq实例
let dataModel = DataModelSeq()
// 添加一些数据
dataModel.add(DataModelString("字符串数据"))
dataModel.add(DataModelInt(123))
return 0
}
func getItems()
public func getItems(): ArrayList<DataModel>
功能:获取 DataModelSeq 中的数据。
返回值:
- ArrayList<DataModel> - DataModelSeq 中的数据,类型为 ArrayList<DataModel>。
示例:
import stdx.serialization.serialization.*
import std.collection.*
main() {
// 创建DataModelSeq实例并添加数据
let dataModel = DataModelSeq()
dataModel.add(DataModelString("字符串数据"))
dataModel.add(DataModelInt(123))
// 获取所有项目
let items = dataModel.getItems()
println("获取到的数据数量: ${items.size}")
return 0
}
运行结果:
获取到的数据数量: 2
class DataModelString
public class DataModelString <: DataModel {
public init(sv: String)
}
功能:此类为 DataModel 的子类,实现对 String 类型数据的封装。
父类型:
init(String)
public init(sv: String)
功能:构造一个具有初始数据的 DataModelString。
参数:
- sv: String - 传入的 String 类型。
示例:
import stdx.serialization.serialization.*
main() {
// 创建DataModelString实例
let dataModel = DataModelString("这是一个字符串")
return 0
}
func getValue()
public func getValue(): String
功能:获取 DataModelString 中的数据。
返回值:
- String - DataModelString 中类型为 String 的
value数值。
示例:
import stdx.serialization.serialization.*
main() {
// 创建DataModelString实例
let dataModel = DataModelString("测试字符串")
// 获取字符串值
let value = dataModel.getValue()
println("获取到的字符串值: ${value}")
return 0
}
运行结果:
获取到的字符串值: 测试字符串
class DataModelStruct
public class DataModelStruct <: DataModel {
public init()
public init(list: ArrayList<Field>)
}
功能:此类为 DataModel 的子类,用来实现 class 对象到 DataModel 的转换。
父类型:
init()
public init()
功能:构造一个空参的 DataModelStructfields 默认为空的 ArrayList<Field>。
示例:
import stdx.serialization.serialization.*
main() {
// 创建空参数的DataModelStruct实例
let dataModel = DataModelStruct()
return 0
}
init(ArrayList<Field>)
public init(list: ArrayList<Field>)
功能:构造一个具有初始数据的 DataModelStruct。
参数:
示例:
import stdx.serialization.serialization.*
import std.collection.*
main() {
// 创建Field列表
let fieldList = ArrayList<Field>()
fieldList.add(Field("name", DataModelString("张三")))
fieldList.add(Field("age", DataModelInt(25)))
// 使用Field列表创建DataModelStruct实例
let dataModel = DataModelStruct(fieldList)
return 0
}
func add(Field)
public func add(fie: Field): DataModelStruct
功能:添加数据 fie 到 DataModelStruct 中。
参数:
返回值:
- DataModelStruct - 得到新的 DataModelStruct。
示例:
import stdx.serialization.serialization.*
main() {
// 创建DataModelStruct实例
let dataModel = DataModelStruct()
// 创建一个Field并添加到DataModelStruct
let field = Field("name", DataModelString("李四"))
let newDataModel = dataModel.add(field)
return 0
}
func get(String)
public func get(key: String): DataModel
功能:获取 key 对应的数据。
参数:
- key: String - 传入的 String 类型。
返回值:
- DataModel - 类型为 DataModel,如未查找到对应值,则返回 DataModelNull。
示例:
import stdx.serialization.serialization.*
main() {
// 创建DataModelStruct实例并添加数据
let dataModel = DataModelStruct()
let fieldName = Field("name", DataModelString("王五"))
let fieldAge = Field("age", DataModelInt(18))
dataModel.add(fieldName)
dataModel.add(fieldAge)
// 获取指定key的数据
let dataModelString = dataModel.get("name")
// 反序列化
let data = String.deserialize(dataModelString)
println("name: ${data}")
return 0
}
运行结果:
name: 王五
func getFields()
public func getFields(): ArrayList<Field>
功能:获取 DataModelStruct 的数据集合。
返回值:
示例:
import stdx.serialization.serialization.*
main() {
// 创建DataModelStruct实例并添加数据
let dataModel = DataModelStruct()
let fieldName = Field("name", DataModelString("赵六"))
let fieldAge = Field("age", DataModelInt(18))
dataModel.add(fieldName)
dataModel.add(fieldAge)
// 获取所有字段
let fields = dataModel.getFields()
println("数据大小: ${fields.size}")
return 0
}
运行结果:
数据大小: 2
class Field
public class Field {
public init(name: String, data: DataModel)
}
功能:用于存储 DataModelStruct 的元素。
init(String, DataModel)
public init(name: String, data: DataModel)
功能:Field 的构造函数。
参数:
- name: String -
name字段值,name字段为""时行为与为其它字符串时一致。 - data: DataModel -
data字段值。
示例:
import stdx.serialization.serialization.*
main() {
// 创建Field实例
let field = Field("age", DataModelInt(25))
return 0
}
func getData()
public func getData(): DataModel
功能:获取 data 字段。
返回值:
示例:
import stdx.serialization.serialization.*
main() {
// 创建Field实例
let field = Field("score", DataModelFloat(95.5))
// 获取data字段
let data = field.getData()
let score = Float64.deserialize(data)
println("score: ${score}")
return 0
}
运行结果:
score: 95.500000
func getName()
public func getName(): String
功能:获取 name 字段。
返回值:
- String - 获取到的
name字段,类型为 String。
示例:
import stdx.serialization.serialization.*
main() {
// 创建Field实例
let field = Field("username", DataModelString("admin"))
// 获取name字段
let name = field.getName()
println("获取到的name字段: ${name}")
return 0
}
运行结果:
获取到的name字段: username