# UTSJSONObject

UTSJSONObject 是 UTS 语言的内置类型,主要用来操作匿名对象

注意:UTSJSONObject类型的数据暂不支持响应式

# 创建实例

UTSJSONObject 对象的实例目前主要通过两种方式来创建:

const person: UTSJSONObject = {
    name: 'Tom',
    printName: () => {
      // ...
    }
}
  • 通过 JSON 字符串

// 写法1 推荐
const person: UTSJSONObject = JSON.parseObject('{"name":"Tom"}')!
	
// 写法2 推荐
const person: UTSJSONObject = JSON.parse<UTSJSONObject>('{"name":"Tom"}')!
	

// 写法3  如果 as 转换的实际类型不匹配 会导致 crash,建议先通过 `instanceof` 判断类型再进行as转换。
const parseRet = JSON.parse('{"name":"Tom"}')
if(parseRet instanceof UTSJSONObject){
  const person = parseRet as UTSJSONObject
}

# 实例方法

# get(key: string): any | null

返回指定键对应的值,如果对象中不存在此键则返回 null。

const name: string = person.get('name') as string

get 方法可以简化为使用下标运算符 [] 访问

const name: string = person['name'] as string

# set(key: string, value: any | null)

增加或更新指定键对应的值。

person.set('name', 'Tom')

set 方法可以简化为使用下标运算符 [] 赋值

person['name'] = 'Tom'

# getAny(key): any | null

获取一个 属性,返回类型是any 或者 null

参数

名称 类型 必填 描述
key string -

返回值

类型 描述
any|null 如果属性存在返回结果,不存在返回null

兼容性

安卓系统版本 安卓 uni-app 安卓 uni-app-x iOS 系统版本 iOS uni-app iOS uni-app-x
5.0 3.9+ 3.9+ 9.0 x

# getBoolean(key): boolean | null

获取一个Boolean属性,返回类型是Boolean 或者 null

参数

名称 类型 必填 描述
key string -

返回值

类型 描述
boolean|null 如果属性名存在,且类型为Boolean返回对应的结果,不存在返回null

兼容性

安卓系统版本 安卓 uni-app 安卓 uni-app-x iOS 系统版本 iOS uni-app iOS uni-app-x
5.0 3.9+ 3.9+ 9.0 x

# getNumber(key): number | null

获取一个number属性,返回类型是number 或者 null

参数

名称 类型 必填 描述
key string -

返回值

类型 描述
number|null 如果属性名存在,且类型为number返回对应的结果,不存在返回null

兼容性

安卓系统版本 安卓 uni-app 安卓 uni-app-x iOS 系统版本 iOS uni-app iOS uni-app-x
5.0 3.9+ 3.9+ 9.0 x

# getString(key): string | null

获取一个string属性,返回类型是string 或者 null

参数

名称 类型 必填 描述
key string -

返回值

类型 描述
string|null 如果属性名存在,且类型为string返回对应的结果,不存在返回null

兼容性

安卓系统版本 安卓 uni-app 安卓 uni-app-x iOS 系统版本 iOS uni-app iOS uni-app-x
5.0 3.9+ 3.9+ 9.0 x

# getJSON(key): UTSJSONObject | null

获取一个UTSJSONObject属性,返回类型是UTSJSONObject 或者 null

参数

名称 类型 必填 描述
key string -

返回值

类型 描述
UTSJSONObject|null 如果属性名存在,且类型为UTSJSONObject返回对应的结果,不存在返回null

兼容性

安卓系统版本 安卓 uni-app 安卓 uni-app-x iOS 系统版本 iOS uni-app iOS uni-app-x
5.0 3.9+ 3.9+ 9.0 x

# getArray(key): Array | null

获取一个Array属性,返回类型是Array 或者 null

参数

名称 类型 必填 描述
key string -

返回值

类型 描述
Array<any>|null 如果属性名存在,且类型为Array返回对应的结果,不存在返回null

兼容性

安卓系统版本 安卓 uni-app 安卓 uni-app-x iOS 系统版本 iOS uni-app iOS uni-app-x
5.0 3.9+ 3.9+ 9.0 x

# getArray(key): Array | null

获取一个Array属性,返回类型是Array 或者 null, 数组元素类型由泛型T决定

参数

名称 类型 必填 描述
key string -

返回值

类型 描述
Array<T>|null 如果属性名存在,且类型为Array返回对应的结果,不存在返回null

兼容性

安卓系统版本 安卓 uni-app 安卓 uni-app-x iOS 系统版本 iOS uni-app iOS uni-app-x
5.0 3.9+ 3.9+ 9.0 x

这个方法用来获取指定元素类型的数组


let obj = JSON.parseObject('{"name":"tom","tag":["student","user"]}')

// 这里得到是 Array<*> 
let noGenericArray = obj!.getArray("tag")
console.log(noGenericArray)

// 这里得到是 Array<string> 
let genericArray = obj!.getArray<string>("tag")
console.log(genericArray)

# toMap(): Map<string, any>

将当前 UTSJSONObject 实例转换为 Map 实例。

返回值

类型 描述
Map<string, any> 返回 Map<string, any> 类型的 map
person.toMap().forEach((value, key) => {
    console.log(key)
    console.log(value)
})

兼容性

安卓系统版本 安卓 uni-app 安卓 uni-app-x iOS 系统版本 iOS uni-app iOS uni-app-x
5.0 3.9+ 3.9+ 9.0 x