public class JsonReader {
public init(inputStream: InputStream)
} 功能:此类提供 JSON 数据流转仓颉对象的反序列化能力。
示例:
public init(inputStream: InputStream)
功能:根据输入流创建一个 JsonReader, JsonReader 从输入流中读取数据时,将跳过非 JsonString 中的空字符('\0', '\t', '\n', '\r')。
参数:
public func endArray(): Unit
功能:从输入流的当前位置跳过空白字符后消耗一个 ']' 字符,endArray 必须有一个 startArray 与之对应。
异常:
public func endObject(): Unit
功能:从输入流的当前位置跳过空白字符后消耗一个 '}' 字符,endObject 必须有一个 startObject 与之对应。
异常:
public func peek(): Option<JsonToken>
功能:获取输入流的下一个 JsonToken 的类型,不保证下一个 JsonToken 的格式一定正确。
例:如果输入流中的下一个字符为 't',获取的 JsonToken 将为 JsonToken.Bool,但调用 readValue<Bool>() 不一定成功。
返回值:
异常:
public func readName(): String
功能:从输入流的当前位置读取一个 name。
返回值:
异常:
public func readValue<T>(): T where T <: JsonDeserializable<T>
功能:从输入流的当前位置读取一个 value。
返回值:
异常:
public func skip(): Unit
功能:从输入流的当前位置跳过一组数据。
异常:
public func startArray(): Unit
功能:从输入流的当前位置跳过空白字符后消耗一个 '[' 字符。
异常:
public func startObject(): Unit
功能:从输入流的当前位置跳过空白字符后消耗一个 '{' 字符。
异常:
public class JsonWriter {
public init(out: OutputStream)
} JsonWriter 提供了将仓颉对象序列化到 OutputStream 的能力。
JsonWriter 需要和 interface JsonSerializable 搭配使用,JsonWriter 可以通过 writeValue 来将实现了 JsonSerializable 接口的类型写入到 Stream 中。
JsonWriter 中使用缓存来减少写入 Stream 时的 IO 次数,在结束使用 JsonWriter 之前需要调用 flush 函数来确保缓存中的数据全部写入 Stream。
示例:
使用示例见使用 Json Stream 进行序列化
public init(out: OutputStream)
功能:构造函数,构造一个将数据写入 out 的实例。
参数:
public var writeConfig: WriteConfig = WriteConfig.compact
功能:序列化格式配置。详见 WriteConfig。
public func endArray(): Unit
功能:结束序列化当前的 JSON 数组。
异常:
public func endObject(): Unit
功能:结束序列化当前的 JSON object。
异常:
public func jsonValue(value: String): JsonWriter
功能: 将符合JSON value规范的原始字符串写入stream。
此函数不会对值 value 进行转义,也不会为入参添加双引号。如果使用者能够保证输入的值 value 符合数据转换标准ECMA-404 The JSON Data Interchange Standard, 建议使用该函数。
返回值:
异常:
public func startArray(): Unit
功能:开始序列化一个新的 JSON 数组,每一个 startArray 都必须有一个 endArray 对应。
异常:
public func startObject(): Unit
功能:开始序列化一个新的 JSON object,每一个 startObject 都必须有一个 endObject 对应。
异常:
public func writeName(name: String): JsonWriter
功能:在 object 结构中写入 name。
返回值:
异常:
public func writeNullValue(): JsonWriter
功能:向流中写入 JSON value null。
返回值:
异常:
public func writeValue<T>(v: T): JsonWriter where T <: JsonSerializable
功能:将实现了 JsonSerializable 接口的类型写入到 Stream 中。该接口会调用泛型 T 的 toJson 方法向输出流中写入数据。
json.stream 包已经为基础类型 Int64、UInt64、Float64、Bool、String类型扩展实现了 JsonSerializable, 并且为 Collection 类型 Array、ArrayList和 HashMap 扩展实现了 JsonSerializable。
返回值:
异常: