简体中文
UTSJSONObject 是 UTS 语言的内置类型,主要用来操作匿名对象
注意:UTSJSONObject类型的数据暂不支持响应式
UTSJSONObject 对象的实例目前主要通过两种方式来创建:
const person: UTSJSONObject = {
name: 'Tom',
printName: () => {
// ...
}
}
// 写法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
}
返回指定键对应的值,如果对象中不存在此键则返回 null。
const name: string = person.get('name') as string
get 方法可以简化为使用下标运算符 []
访问
const name: string = person['name'] as string
增加或更新指定键对应的值。
person.set('name', 'Tom')
set 方法可以简化为使用下标运算符 []
赋值
person['name'] = 'Tom'
获取一个 属性,返回类型是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 |
获取一个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 |
获取一个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 |
获取一个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 |
获取一个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 |
获取一个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 |
获取一个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)
将当前 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 |