json.md 2.9 KB
Newer Older
D
DCloud_LXH 已提交
1
# JSON
D
DCloud_LXH 已提交
2

D
DCloud_LXH 已提交
3
## 静态方法
D
DCloud_LXH 已提交
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

### parse

JSON.parse() 方法用来解析 JSON 字符串,构造由字符串描述的 UTSJSONObject。

```ts
const json = `{"result":true, "count":42}`;
const obj = JSON.parse(json);

console.log(obj["count"]);
// expected output: 42

console.log(obj["result"]);
// expected output: true
```

**注意**

- JSON.parse 解析出来的对象,目前仅支持使用方括号[]访问
- 如果输入的字符串不是合法的json格式,则会返回 null

D
DCloud_LXH 已提交
25
## 实例方法
杜庆泉's avatar
杜庆泉 已提交
26 27


D
DCloud_LXH 已提交
28
### parse(text, reviver?)
杜庆泉's avatar
杜庆泉 已提交
29

D
DCloud_LXH 已提交
30
<!-- UTSJSON.JSON.parse.description -->
杜庆泉's avatar
杜庆泉 已提交
31

D
DCloud_LXH 已提交
32 33
<!-- UTSJSON.JSON.parse.param -->

D
DCloud_LXH 已提交
34
<!-- UTSJSON.JSON.parse.returnValue -->
D
DCloud_LXH 已提交
35 36

 ```ts
杜庆泉's avatar
杜庆泉 已提交
37 38 39
class Person {
    name:string = ""
    age:number = 0
杜庆泉's avatar
杜庆泉 已提交
40 41 42
}

// 带泛型的parse,这里的personObj 类型是 我们定义的`Persion`类
杜庆泉's avatar
杜庆泉 已提交
43
let personObj = JSON.parse<Person>('{"name":"zhangsan","age":12}')
杜庆泉's avatar
杜庆泉 已提交
44 45
// 不带泛型的parse,这里的jsonObj类型是通用的`UTSJSONObject`
let jsonObj = JSON.parse('{"name":"zhangsan","age":12}')
D
DCloud_LXH 已提交
46
```
杜庆泉's avatar
杜庆泉 已提交
47

Q
qiang 已提交
48 49
HBuilderX 3.9+,支持JSON.parse传入[泛型](../generics.md)

杜庆泉's avatar
杜庆泉 已提交
50 51
与不带泛型的JSON.parse 相比,多了一个`<Persion>` 尖括号 用来指定返回类型。

杜庆泉's avatar
杜庆泉 已提交
52
相比不带泛型的`parse`函数,带泛型的 `parse`函数,会提高反序列数据的开发效率,明确的结构数据可以提升工程健壮度
杜庆泉's avatar
杜庆泉 已提交
53 54


D
DCloud_LXH 已提交
55 56 57 58 59
<!-- UTSJSON.JSON.parse.compatibility -->

### stringify(value, replacer?, space?)

<!-- UTSJSON.JSON.stringify.description -->
杜庆泉's avatar
杜庆泉 已提交
60

D
DCloud_LXH 已提交
61
<!-- UTSJSON.JSON.stringify.param -->
D
DCloud_LXH 已提交
62

D
DCloud_LXH 已提交
63
<!-- UTSJSON.JSON.stringify.returnValue -->
D
DCloud_LXH 已提交
64 65 66 67 68 69 70 71 72 73 74 75

```ts
console.log(JSON.stringify({ x: 5, y: 6 }));
// expected output: "{"x":5,"y":6}"

console.log(JSON.stringify([3, 'false', boolean]));
// expected output: "[3,"false",false]"

console.log(JSON.stringify(new Date(2006, 0, 2, 15, 4, 5)));
// expected output: ""2006-01-02T15:04:05.000Z""

```
D
DCloud_LXH 已提交
76 77 78 79 80 81 82 83 84

<!-- UTSJSON.JSON.stringify.compatibility -->

### stringify(value, replacer?, space?)

<!-- UTSJSON.JSON.stringify_1.description -->

<!-- UTSJSON.JSON.stringify_1.param -->

D
DCloud_LXH 已提交
85
<!-- UTSJSON.JSON.stringify_1.returnValue -->
D
DCloud_LXH 已提交
86

杜庆泉's avatar
杜庆泉 已提交
87
<!-- UTSJSON.JSON.stringify_1.compatibility -->
D
DCloud_LXH 已提交
88 89 90 91 92 93 94 95 96 97 98

### parseObject(text: string)

<!-- UTSJSON.JSON.parseObject.description -->

<!-- UTSJSON.JSON.parseObject.param -->

<!-- UTSJSON.JSON.parseObject.returnValue -->

<!-- UTSJSON.JSON.parseObject.compatibility -->

D
DCloud_LXH 已提交
99
### parseObject\<T\>(text: string)
D
DCloud_LXH 已提交
100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118

<!-- UTSJSON.JSON.parseObject_1.description -->

<!-- UTSJSON.JSON.parseObject_1.param -->

<!-- UTSJSON.JSON.parseObject_1.returnValue -->

<!-- UTSJSON.JSON.parseObject_1.compatibility -->

### parseArray(text: string)

<!-- UTSJSON.JSON.parseArray.description -->

<!-- UTSJSON.JSON.parseArray.param -->

<!-- UTSJSON.JSON.parseArray.returnValue -->

<!-- UTSJSON.JSON.parseArray.compatibility -->

D
DCloud_LXH 已提交
119
### parseArray\<T\>(text: string)
D
DCloud_LXH 已提交
120 121 122 123 124 125 126

<!-- UTSJSON.JSON.parseArray_1.description -->

<!-- UTSJSON.JSON.parseArray_1.param -->

<!-- UTSJSON.JSON.parseArray_1.returnValue -->

杜庆泉's avatar
杜庆泉 已提交
127
<!-- UTSJSON.JSON.parseArray_1.compatibility -->