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

功能:获取 JsonArrayJsonValue 的数量。

返回值:

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 - 指定的索引。

返回值:

异常:

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 的实际值。

返回值:

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 数据。

返回值:

func kind()

public func kind(): 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 的数量。

返回值:

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。

返回值:

异常:

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)。

返回值:

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 数据层,主要用于 JsonValueString 数据之间的互相转换。

抽象类 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 格式。

返回值:

异常:

func asBool()

public func asBool(): JsonBool

功能:将 JsonValue 转换为 JsonBool 格式。

返回值:

异常:

func asFloat()

public func asFloat(): JsonFloat

功能:将 JsonValue 转换为 JsonFloat 格式。

返回值:

异常:

func asInt()

public func asInt(): JsonInt

功能:将 JsonValue 转换为 JsonInt 格式。

返回值:

异常:

func asNull()

public func asNull(): JsonNull

功能:将 JsonValue 转换为 JsonNull 格式。

返回值:

异常:

func asObject()

public func asObject(): JsonObject

功能:将 JsonValue 转换为 JsonObject 格式。

返回值:

异常:

func asString()

public func asString(): JsonString

功能:将 JsonValue 转换为 JsonString 格式。

返回值:

异常:

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 - 转换后的字符串。