# UTSJSONObject UTSJSONObject 是 UTS 语言的内置类型,主要用来操作[匿名对象](../object.md#anonymous-object) 注意:UTSJSONObject类型的数据暂不支持响应式 ## 创建实例 UTSJSONObject 对象的实例目前主要通过两种方式来创建: * 通过[对象字面量](../literal.md#object-literal) * 通过 JSON 字符串 ## 静态方法 ### keys(object: UTSJSONObject): Array\ ### assign(...items): UTSJSONObject > 注意: 与js中的`Object.assign`不同, 这里每次返回的都是一个新的对象 ### assign\(...items: T[]): T > 注意: 与js中的`Object.assign`不同, 这里每次返回的都是一个新的对象 ## 实例方法 ### parse() ### get(key: string): any | null ### set(key: string, value: any | null) ### getAny(key): any | null ### getAny(key, def): any ### getBoolean(key): boolean | null ### getBoolean(key, def): boolean ### getNumber(key): number | null ### getNumber(key, def): number ### getString(key): string | null ### getString(key, def): string ### getJSON(key): UTSJSONObject | null ### getJSON(key, def): UTSJSONObject ### getArray(key): Array\ | null ### getArray(key, def: Array\): Array\ ### getArray(key): Array\ | null ### getArray(key, def: Array\): Array\ ### toMap(): Map\ ## 常见问题 #### 目标语言为js时UTSJSONObject实例方法可以被覆盖 > 如非必要请勿利用此特性 如下代码会将getString覆盖为1 ```typescript const a = { getString: 1 } console.log(a.getString) // 1 ``` #### UTSJSONObject 与 type 相互转换 可以使用下面的代码,进行 `UTSJSONObject` 和 `type` 转换 ## Android 平台方法 * 目前 UTSJSONObject 类型编译到 kotlin 为 io.dcloud.uts.UTSJSONObject ::: preview > UTS ```ts // 创建一个kotlin hashmap let kotlinMap = new kotlin.collections.HashMap() kotlinMap.put("a",111) kotlinMap.put("b",2) // 转换为UTSJSONObject let utsObj = new UTSJSONObject(kotlinMap) console.log(utsObj) // UTSJSONObject 转换为 Map let nextMap = utsObj.toMap() console.log(nextMap) ``` > Kotlin ```kotlin // 创建一个kotlin hashmap var kotlinMap = kotlin.collections.HashMap(); kotlinMap.put("a", 111); kotlinMap.put("b", 2); // 转换为UTSJSONObject var utsObj = UTSJSONObject(kotlinMap, UTSSourceMapPosition("utsObj", "pages/index/helloView.uvue", 33, 8)); console.log(utsObj); // UTSJSONObject 转换为 Map var nextMap = utsObj.toMap(); console.log(nextMap); ``` :::