utsjsonobject.md 5.5 KB
Newer Older
D
DCloud_LXH 已提交
1 2 3 4 5 6 7 8 9 10 11 12
# UTSJSONObject

UTSJSONObject 是 UTS 语言的内置类型,主要用来操作[匿名对象](../object.md#anonymous-object)

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

## 创建实例

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

* 通过[对象字面量](../literal.md#object-literal)

M
mahaifeng 已提交
13
<!-- UTSJSON.UTSJSONObject.sample_create.test -->
D
DCloud_LXH 已提交
14 15 16

* 通过 JSON 字符串

M
mahaifeng 已提交
17
<!-- UTSJSON.UTSJSONObject.sample_create1.test -->
D
DCloud_LXH 已提交
18

杜庆泉's avatar
杜庆泉 已提交
19 20
## 静态方法

D
DCloud_LXH 已提交
21
### keys(object: UTSJSONObject): Array\<String>
杜庆泉's avatar
杜庆泉 已提交
22

杜庆泉's avatar
杜庆泉 已提交
23 24 25 26 27 28
<!-- UTSJSON.UTSJSONObject.keys.description -->

<!-- UTSJSON.UTSJSONObject.keys.param -->

<!-- UTSJSON.UTSJSONObject.keys.returnValue -->

M
mahaifeng 已提交
29
<!-- UTSJSON.UTSJSONObject.keys.test -->
杜庆泉's avatar
杜庆泉 已提交
30

M
mahaifeng 已提交
31
<!-- UTSJSON.UTSJSONObject.keys.compatibility -->
杜庆泉's avatar
杜庆泉 已提交
32

杜庆泉's avatar
杜庆泉 已提交
33

D
DCloud_LXH 已提交
34
### assign(...items): UTSJSONObject
杜庆泉's avatar
杜庆泉 已提交
35

杜庆泉's avatar
杜庆泉 已提交
36 37 38
<!-- UTSJSON.UTSJSONObject.assign.description -->

<!-- UTSJSON.UTSJSONObject.assign.param -->
杜庆泉's avatar
杜庆泉 已提交
39

杜庆泉's avatar
杜庆泉 已提交
40 41
<!-- UTSJSON.UTSJSONObject.assign.returnValue -->

M
mahaifeng 已提交
42 43
<!-- UTSJSON.UTSJSONObject.assign.test -->

杜庆泉's avatar
杜庆泉 已提交
44
<!-- UTSJSON.UTSJSONObject.assign.compatibility -->
杜庆泉's avatar
杜庆泉 已提交
45

杜庆泉's avatar
杜庆泉 已提交
46
> 注意: 与js中的`Object.assign`不同, 这里每次返回的都是一个新的对象
杜庆泉's avatar
杜庆泉 已提交
47

D
DCloud_LXH 已提交
48
### assign\<T>(...items: T[]): T
杜庆泉's avatar
杜庆泉 已提交
49

D
DCloud_LXH 已提交
50
<!-- UTSJSON.UTSJSONObject.assign_1.description -->
杜庆泉's avatar
杜庆泉 已提交
51

D
DCloud_LXH 已提交
52
<!-- UTSJSON.UTSJSONObject.assign_1.param -->
杜庆泉's avatar
杜庆泉 已提交
53

D
DCloud_LXH 已提交
54
<!-- UTSJSON.UTSJSONObject.assign_1.returnValue -->
杜庆泉's avatar
杜庆泉 已提交
55

M
mahaifeng 已提交
56 57
<!-- UTSJSON.UTSJSONObject.assign_1.test -->

D
DCloud_LXH 已提交
58
<!-- UTSJSON.UTSJSONObject.assign_1.compatibility -->
杜庆泉's avatar
杜庆泉 已提交
59

杜庆泉's avatar
杜庆泉 已提交
60
> 注意: 与js中的`Object.assign`不同, 这里每次返回的都是一个新的对象
杜庆泉's avatar
杜庆泉 已提交
61

D
DCloud_LXH 已提交
62 63
## 实例方法

D
DCloud_LXH 已提交
64 65 66 67 68 69 70 71 72 73 74 75 76 77
### parse()

<!-- UTSJSON.UTSJSONObject.parse.description -->

<!-- UTSJSON.UTSJSONObject.parse.param -->

<!-- UTSJSON.UTSJSONObject.parse.returnValue -->

<!-- UTSJSON.UTSJSONObject.parse.test -->

<!-- UTSJSON.UTSJSONObject.parse.compatibility -->

<!-- UTSJSON.UTSJSONObject.parse.tutorial -->

D
DCloud_LXH 已提交
78 79
### get(key: string): any | null

M
mahaifeng 已提交
80
<!-- UTSJSON.UTSJSONObject.get.description -->
D
DCloud_LXH 已提交
81

M
mahaifeng 已提交
82
<!-- UTSJSON.UTSJSONObject.get.param -->
D
DCloud_LXH 已提交
83

M
mahaifeng 已提交
84
<!-- UTSJSON.UTSJSONObject.get.returnValue -->
D
DCloud_LXH 已提交
85

M
mahaifeng 已提交
86 87 88
<!-- UTSJSON.UTSJSONObject.get.test -->

<!-- UTSJSON.UTSJSONObject.get.compatibility -->
D
DCloud_LXH 已提交
89 90 91

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

M
mahaifeng 已提交
92
<!-- UTSJSON.UTSJSONObject.set.description -->
D
DCloud_LXH 已提交
93

M
mahaifeng 已提交
94
<!-- UTSJSON.UTSJSONObject.set.param -->
D
DCloud_LXH 已提交
95

M
mahaifeng 已提交
96 97 98 99 100
<!-- UTSJSON.UTSJSONObject.set.returnValue -->

<!-- UTSJSON.UTSJSONObject.set.test -->

<!-- UTSJSON.UTSJSONObject.set.compatibility -->
D
DCloud_LXH 已提交
101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139

### getAny(key): any | null

<!-- UTSJSON.UTSJSONObject.getAny.description -->

<!-- UTSJSON.UTSJSONObject.getAny.param -->

<!-- UTSJSON.UTSJSONObject.getAny.returnValue -->

<!-- UTSJSON.UTSJSONObject.getAny.compatibility -->

### getBoolean(key): boolean | null

<!-- UTSJSON.UTSJSONObject.getBoolean.description -->

<!-- UTSJSON.UTSJSONObject.getBoolean.param -->

<!-- UTSJSON.UTSJSONObject.getBoolean.returnValue -->

<!-- UTSJSON.UTSJSONObject.getBoolean.compatibility -->

### getNumber(key): number | null

<!-- UTSJSON.UTSJSONObject.getNumber.description -->

<!-- UTSJSON.UTSJSONObject.getNumber.param -->

<!-- UTSJSON.UTSJSONObject.getNumber.returnValue -->

<!-- UTSJSON.UTSJSONObject.getNumber.compatibility -->

### getString(key): string | null

<!-- UTSJSON.UTSJSONObject.getString.description -->

<!-- UTSJSON.UTSJSONObject.getString.param -->

<!-- UTSJSON.UTSJSONObject.getString.returnValue -->

M
mahaifeng 已提交
140 141
<!-- UTSJSON.UTSJSONObject.getString.test -->

D
DCloud_LXH 已提交
142 143 144 145 146 147 148 149 150 151
<!-- UTSJSON.UTSJSONObject.getString.compatibility -->

### getJSON(key): UTSJSONObject | null

<!-- UTSJSON.UTSJSONObject.getJSON.description -->

<!-- UTSJSON.UTSJSONObject.getJSON.param -->

<!-- UTSJSON.UTSJSONObject.getJSON.returnValue -->

M
mahaifeng 已提交
152 153
<!-- UTSJSON.UTSJSONObject.getJSON.test -->

D
DCloud_LXH 已提交
154 155
<!-- UTSJSON.UTSJSONObject.getJSON.compatibility -->

D
DCloud_LXH 已提交
156
### getArray(key): Array\<any> | null
D
DCloud_LXH 已提交
157 158 159 160 161 162 163

<!-- UTSJSON.UTSJSONObject.getArray.description -->

<!-- UTSJSON.UTSJSONObject.getArray.param -->

<!-- UTSJSON.UTSJSONObject.getArray.returnValue -->

M
mahaifeng 已提交
164 165
<!-- UTSJSON.UTSJSONObject.getArray.test -->

D
DCloud_LXH 已提交
166 167
<!-- UTSJSON.UTSJSONObject.getArray.compatibility -->

D
DCloud_LXH 已提交
168
### getArray(key): Array\<T> | null
D
DCloud_LXH 已提交
169 170 171 172 173 174 175

<!-- UTSJSON.UTSJSONObject.getArray_1.description -->

<!-- UTSJSON.UTSJSONObject.getArray_1.param -->

<!-- UTSJSON.UTSJSONObject.getArray_1.returnValue -->

M
mahaifeng 已提交
176
<!-- UTSJSON.UTSJSONObject.getArray_1.test -->
D
DCloud_LXH 已提交
177

M
mahaifeng 已提交
178
<!-- UTSJSON.UTSJSONObject.getArray_1.compatibility -->
杜庆泉's avatar
杜庆泉 已提交
179

D
DCloud_LXH 已提交
180
### toMap(): Map\<string, any>
D
DCloud_LXH 已提交
181 182 183 184 185 186 187

<!-- UTSJSON.UTSJSONObject.toMap.description -->

<!-- UTSJSON.UTSJSONObject.toMap.param -->

<!-- UTSJSON.UTSJSONObject.toMap.returnValue -->

M
mahaifeng 已提交
188
<!-- UTSJSON.UTSJSONObject.toMap.test -->
D
DCloud_LXH 已提交
189 190 191 192 193

<!-- UTSJSON.UTSJSONObject.toMap.compatibility -->

<!-- UTSJSON.UTSJSONObject.tutorial -->

杜庆泉's avatar
杜庆泉 已提交
194 195 196



杜庆泉's avatar
杜庆泉 已提交
197
## 常见问题
杜庆泉's avatar
杜庆泉 已提交
198

杜庆泉's avatar
杜庆泉 已提交
199
#### UTSJSONObject 与 type 相互转换
杜庆泉's avatar
杜庆泉 已提交
200

杜庆泉's avatar
杜庆泉 已提交
201
可以使用下面的代码,进行 `UTSJSONObject``type` 转换
杜庆泉's avatar
杜庆泉 已提交
202

M
mahaifeng 已提交
203
<!-- UTSJSON.UTSJSONObject.convert.test -->
杜庆泉's avatar
杜庆泉 已提交
204

205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242
## Android 平台方法

* 目前 UTSJSONObject 类型编译到 kotlin 为 io.dcloud.uts.UTSJSONObject


::: preview

> UTS

```ts
// 创建一个kotlin hashmap
let kotlinMap = new kotlin.collections.HashMap<string,number>()
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<String, Number>();
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);
```

:::