feat: ChatData 序列化 json化

This commit is contained in:
Cheliangzhao 2024-09-19 10:57:40 +08:00
parent 32dfd20454
commit 470c66a612
2 changed files with 56 additions and 3 deletions

View File

@ -0,0 +1,17 @@
/**
* Created on 2024/9/19
*/
package ohos_app_cangjie_entry.support.support_database
import ohos.preferences.*
internal import ohos.ability.*
internal import ohos.window.*
import ohos.base.*
public class PreferencesStore {
private let context: AbilityContext
public init(context: AbilityContext) {
this.context = context
}
}

View File

@ -3,12 +3,48 @@
*/ */
package ohos_app_cangjie_entry.types package ohos_app_cangjie_entry.types
public class ChatData { import serialization.serialization.*
import std.math.*
import encoding.json.*
public class ChatData <: Serializable<ChatData> {
public ChatData(public let id!: String, public let message!: String, public let source!: String) {} public ChatData(public let id!: String, public let message!: String, public let source!: String) {}
public operator func ==(right: ChatData) { public operator func ==(right: ChatData) {
return (this.id == right.id return (
this.id == right.id
&& this.message == right.message && this.message == right.message
&& this.source == right.source) && this.source == right.source
)
}
public func serialize(): DataModel {
return (
DataModelStruct()
.add(field<String>('id', id))
.add(field<String>('message', message))
.add(field<String>('source', source))
)
}
public static func deserialize(dm: DataModel): ChatData {
let dms = match (dm) {
case data: DataModelStruct => data
case _ => throw Exception("this data is not DataModelStruct")
}
ChatData(
id: String.deserialize(dms.get('id')),
message: String.deserialize(dms.get('message')),
source: String.deserialize(dms.get('source')),
)
}
public func toString(): String {
this.serialize().toJson().toString()
}
public static func fromString(s: String): ChatData {
let jsonObj = JsonValue.fromStr(s)
ChatData.deserialize(DataModel.fromJson(jsonObj))
} }
} }