# 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

# getBoolean(key): boolean | null

# getNumber(key): number | null

# getString(key): string | null

# getJSON(key): UTSJSONObject | null

# getArray(key): Array | null

# getArray(key): Array | null

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


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>

person.toMap().forEach((value, key) => {
    console.log(key)
    console.log(value)
})