类
class JsonArray
public class JsonArray <: JsonValue {
public init()
public init(list: ArrayList<JsonValue>)
public init(list: Array<JsonValue>)
}
功能:此类为 JsonValue 实现子类,主要用于封装数组类型的 JSON 数据。
示例:
使用示例见JsonArray 使用示例。
父类型:
init()
public init()
功能:创建空 JsonArray。
init(ArrayList<JsonValue>)
public init(list: ArrayList<JsonValue>)
功能:将指定的 ArrayList 类型实例封装成 JsonArray 实例。
参数:
init(Array<JsonValue>)
public init(list: Array<JsonValue>)
功能:将指定的 Array 类型实例封装成 JsonArray 实例。
参数:
func add(JsonValue)
public func add(jv: JsonValue): JsonArray
功能:向 JsonArray 中加入 JsonValue 数据。
参数:
返回值:
func get(Int64)
public func get(index: Int64): Option<JsonValue>
功能:获取 JsonArray 中指定索引的 JsonValue,并用 Option<JsonValue> 封装。
参数:
- index: Int64 - 指定的索引。
返回值:
func getItems()
public func getItems(): ArrayList<JsonValue>
功能:获取 JsonArray 中的 items 数据。
返回值:
func kind()
public func kind(): JsonKind
功能:返回当前 JsonArray 所属的 JsonKind 类型(JsArray)。
返回值:
func size()
public func size(): Int64
功能:获取 JsonArray 中 JsonValue 的数量。
返回值:
func toJsonString()
public func toJsonString(): String
功能:将 JsonArray 转换为 JSON 格式的 (带有空格换行符) 的字符串。
返回值:
- String - 转换后的 JSON 格式字符串。
func toJsonString(Int64, Bool, String)
public func toJsonString(depth: Int64, bracketInNewLine!: Bool = false, indent!: String = " "): String
功能:将 JsonArray 转换为 JSON 格式的字符串。该函数将指定初始的缩进深度、第一个括号后是否换行以及缩进字符串。
参数:
- depth: Int64 - 指定的缩进深度。
- bracketInNewLine!: Bool - 第一个括号是否换行,如果为
true
,第一个括号将另起一行并且按照指定的深度缩进。 - indent!: String - 指定的缩进字符串,缩进字符串中只允许空格和制表符的组合,默认为两个空格。
返回值:
- String - 转换后的 JSON 格式字符串。
异常:
- IllegalArgumentException - 如果 depth 为负数,或 indent 中存在 ' ' 和 '\t' 以外的字符,则抛出异常。
func toString()
public func toString(): String
功能:将 JsonString 转换为字符串。
返回值:
- String - 转换后的字符串。
operator func [](Int64)
public operator func [](index: Int64): JsonValue
功能:获取 JsonArray 中指定索引的 JsonValue。
参数:
- index: Int64 - 指定的索引。
返回值:
异常:
- JsonException - 如果 index 不是 JsonArray 的有效索引,抛出异常。
class JsonBool
public class JsonBool <: JsonValue {
public init(bv: Bool)
}
功能:此类为 JsonValue 实现子类,主要用于封装 true 或者 false 的 JSON 数据。
父类型:
init(Bool)
public init(bv: Bool)
功能:将指定的 Bool 类型实例封装成 JsonBool 实例。
func getValue()
public func getValue(): Bool
功能:获取 JsonBool 中 value 的实际值。
返回值:
- Bool - value 的实际值。
func kind()
public func kind(): JsonKind
功能:返回当前 JsonBool 所属的 JsonKind 类型(JsBool)。
返回值:
func toJsonString()
public func toJsonString(): String
功能:将 JsonBool 转换为 JSON 格式的 (带有空格换行符) 字符串。
返回值:
- String - 转换后的 JSON 格式字符串。
func toString()
public func toString(): String
功能:将 JsonBool 转换为字符串。
返回值:
- String - 转换后的字符串。
class JsonFloat
public class JsonFloat <: JsonValue {
public init(fv: Float64)
public init(v: Int64)
}
功能:此类为 JsonValue 实现子类,主要用于封装浮点类型的 JSON 数据。
父类型:
init(Float)
public init(fv: Float64)
功能:将指定的 Float64 类型实例封装成 JsonFloat 实例。
参数:
init(Int64)
public init(v: Int64)
功能:将指定的 Int64 类型实例封装成 JsonFloat 实例。
参数:
func getValue()
public func getValue(): Float64
功能:获取 JsonFloat 中 value 的实际值。
返回值:
- Float64 - value 的实际值。
func kind()
public func kind(): JsonKind
功能:返回当前 JsonFloat 所属的 JsonKind 类型(JsFloat)。
返回值:
func toJsonString()
public func toJsonString(): String
功能:将 JsonFloat 转换为 JSON 格式的 (带有空格换行符) 字符串。
返回值:
- String - 转换后的 JSON 格式字符串。
func toString()
public func toString(): String
功能:将 JsonFloat 转换为字符串。
返回值:
- String - 转换后的字符串。
class JsonInt
public class JsonInt <: JsonValue {
public init(iv: Int64)
}
功能:此类为 JsonValue 实现子类,主要用于封装整数类型的 JSON 数据。
父类型:
init(Int64)
public init(iv: Int64)
功能:将指定的 Int64 类型实例封装成 JsonInt 实例。
参数:
func getValue()
public func getValue(): Int64
功能:获取 JsonInt 中 value 的实际值。
返回值:
- Int64 - value 的实际值。
func kind()
public func kind(): JsonKind
功能:返回当前 JsonInt 所属的 JsonKind 类型(JsInt)。
返回值:
func toJsonString()
public func toJsonString(): String
功能:将 JsonInt 转换为 JSON 格式的 (带有空格换行符) 字符串。
返回值:
- String - 转换后的 JSON 格式字符串。
func toString()
public func toString(): String
功能:将 JsonInt 转换为字符串。
返回值:
- String - 转换后的字符串。
class JsonNull
public class JsonNull <: JsonValue
功能:此类为 JsonValue 实现子类,主要用于封装 null 的 JSON 数据。
父类型:
func kind()
public func kind(): JsonKind
功能:返回当前 JsonNull 所属的 JsonKind 类型(JsNull)。
返回值:
func toJsonString()
public func toJsonString(): String
功能:将 JsonNull 转换为 JSON 格式的 (带有空格换行符) 字符串。
返回值:
- String - 转换后的 JSON 格式字符串。
func toString()
public func toString(): String
功能:将 JsonNull 转换为字符串。
返回值:
- String - 转换后的字符串。
class JsonObject
public class JsonObject <: JsonValue {
public init()
public init(map: HashMap<String, JsonValue>)
}
功能:此类为 JsonValue 实现子类,主要用于封装 object 类型的 JSON 数据。
父类型:
init()
public init()
功能:创建空 JsonObject。
init()
public init(map: HashMap<String, JsonValue>)
功能:将指定的 HashMap 类型实例封装成 JsonObject 实例。
func containsKey(String)
public func containsKey(key: String): Bool
功能:判断 JsonObject 中是否存在 key。
参数:
- key: String - 指定的 key。
返回值:
- Bool - 存在返回 true,不存在返回 false。
func get(String)
public func get(key: String): Option<JsonValue>
功能:获取 JsonObject 中 key 对应的 JsonValue,并用 Option<JsonValue> 封装。
参数:
- key: String - 指定的 key。
返回值:
func getFields()
public func getFields(): HashMap<String, JsonValue>
功能:获取 JsonObject 中的 fields 数据。
返回值:
- HashMap < String, JsonValue > - JsonObject 的 fields 数据。
func kind()
public func kind(): JsonKind
功能:返回当前 JsonObject 所属的 JsonKind 类型(JsObject)。
返回值:
- JsonKind - 当前 JsonObject 所属的 JsonKind 类型(JsObject)。
func put(String, JsonValue)
public func put(key: String, v: JsonValue): Unit
功能:向 JsonObject 中加入 key-JsonValue 数据。
参数:
func size()
public func size(): Int64
功能:获取 JsonObject 中 fields 存入 string-JsonValue 的数量。
返回值:
- Int64 - JsonObject 中 fields 的大小。
func toJsonString()
public func toJsonString(): String
功能:将 JsonObject 转换为 JSON 格式的 (带有空格换行符) 字符串。
返回值:
- String - 转换后的 JSON 格式字符串。
func toJsonString(Int64, Bool, String)
public func toJsonString(depth: Int64, bracketInNewLine!: Bool = false, indent!: String = " "): String
功能:将 JsonObject 转换为 Json格式的字符串。该函数将指定初始的缩进深度、第一个括号后是否换行以及缩进字符串。
参数:
- depth: Int64 - 缩进深度。
- bracketInNewLine!: Bool - 第一个括号是否换行,如果为
true
,第一个括号将另起一行并且按照指定的深度缩进。 - indent!: String - 指定的缩进字符串,缩进字符串中只允许空格和制表符的组合,默认为两个空格。
返回值:
- String - 转换后的 JSON 格式字符串。
异常:
- IllegalArgumentException - 如果 depth 为负数,或 indent 中存在 ' ' 和 '\t' 以外的字符,则抛出异常。
func toString()
public func toString(): String
功能:将 JsonObject 转换为字符串。
返回值:
- String - 转换后的字符串。
operator func [](String)
public operator func [](key: String): JsonValue
功能:获取 JsonObject 中 key 对应的 JsonValue。
参数:
- key: String - 指定的 key。
返回值:
异常:
- JsonException - 如果 key 不是 JsonObject 的有效键,抛出异常。
class JsonString
public class JsonString <: JsonValue {
public init(sv: String)
}
功能:此类为 JsonValue 实现子类,主要用于封装字符串类型的 JSON 数据。
父类型:
init(String)
public init(sv: String)
功能:将指定的 String 类型实例封装成 JsonString 实例。
func getValue()
public func getValue(): String
功能:获取 JsonString 中 value 的实际值。
返回值:
- String - value 的实际值。
func kind()
public func kind(): JsonKind
功能:返回当前 JsonString 所属的 JsonKind 类型(JsString)。
返回值:
- JsonKind - 当前 JsonString 所属的 JsonKind 类型(JsString)。
func toJsonString()
public func toJsonString(): String
功能:将 JsonString 转换为 JSON 格式的 (带有空格换行符) 字符串。
返回值:
- String - 转换后的 JSON 格式字符串。
func toString()
public func toString(): String
功能:将 JsonString 转换为字符串。
返回值:
- String - 转换后的字符串。
class JsonValue
sealed abstract class JsonValue <: ToString
功能:此类为 JSON 数据层,主要用于 JsonValue 和 String 数据之间的互相转换。
抽象类 JsonValue 提供了 String 类型和具体的 JSON 类型相互转换的接口,以及具体的 JSON 类型判断功能。
示例:
使用示例见JsonValue 和 String 互相转换。
父类型:
static func fromStr(String)
public static func fromStr(s: String): JsonValue
功能:将字符串数据解析为 JsonValue。对于整数,支持前导 '0b','0o','0x'(不区分大小写),分别表示二进制,八进制和十六进制。字符串解析失败时将打印错误字符及其行数和列数,其中列数从错误字符所在行的非空格字符起开始计算。
JSON 在解析 String 转换为 JsonValue 时,转义字符 \ 之后只能对应 JSON 支持的转义字符(b、f、n、r、t、u、\、"、/),其中 \u 的格式为:\uXXXX,X 为十六进制数,例:\u0041 代表字符 'A'。
参数:
- s: String - 传入字符串,暂不支持 "?" 和特殊字符。
返回值:
异常:
- JsonException - 如果内存分配失败,或解析字符串出错,抛出异常。
示例:
import encoding.json.*
main() {
println(JsonString("\b | \f | \n | \r | \t | A | \\ | \" | /").toString())
println(JsonValue.fromStr("\"\\b\"").toString())
println(JsonValue.fromStr("\"\\f\"").toString())
println(JsonValue.fromStr("\"\\n\"").toString())
println(JsonValue.fromStr("\"\\r\"").toString())
println(JsonValue.fromStr("\"\\t\"").toString())
println(JsonValue.fromStr("\"\\u0041\"").toString())
println(JsonValue.fromStr("\"\\\\\"").toString())
println(JsonValue.fromStr("\"\\\"\"").toString())
println(JsonValue.fromStr("\"\\/\"").toString())
}
运行结果如下:
"\b | \f | \n | \r | \t | A | \\ | \" | /"
"\b"
"\f"
"\n"
"\r"
"\t"
"A"
"\\"
"\""
"/"
func asArray()
public func asArray(): JsonArray
功能:将 JsonValue 转换为 JsonArray 格式。
返回值:
异常:
- JsonException - 如果转换失败,抛出异常。
func asBool()
public func asBool(): JsonBool
功能:将 JsonValue 转换为 JsonBool 格式。
返回值:
异常:
- JsonException - 如果转换失败,抛出异常。
func asFloat()
public func asFloat(): JsonFloat
功能:将 JsonValue 转换为 JsonFloat 格式。
返回值:
异常:
- JsonException - 如果转换失败,抛出异常。
func asInt()
public func asInt(): JsonInt
功能:将 JsonValue 转换为 JsonInt 格式。
返回值:
异常:
- JsonException - 如果转换失败,抛出异常。
func asNull()
public func asNull(): JsonNull
功能:将 JsonValue 转换为 JsonNull 格式。
返回值:
异常:
- JsonException - 如果转换失败,抛出异常。
func asObject()
public func asObject(): JsonObject
功能:将 JsonValue 转换为 JsonObject 格式。
返回值:
- JsonObject - 转换后的 JsonObject。
异常:
- JsonException - 如果转换失败,抛出异常。
func asString()
public func asString(): JsonString
功能:将 JsonValue 转换为 JsonString 格式。
返回值:
- JsonString - 转换后的 JsonString。
异常:
- JsonException - 如果转换失败,抛出异常。
func kind()
public func kind(): JsonKind
功能:返回当前 JsonValue 所属的 JsonKind 类型。
返回值:
func toJsonString()
public func toJsonString(): String
功能:将 JsonValue 转换为 JSON 格式的 (带有空格换行符) 字符串。
返回值:
- String - 转换后的 JSON 格式字符串。
func toString()
public func toString(): String
功能:将 JsonValue 转换为字符串。
返回值:
- String - 转换后的字符串。