JSON

发布时间 2023-09-03 18:49:34作者: linux星

JSON

#静态方法

#parse

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

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

#实例方法

#parse(text, reviver?)

JSON.parse() 方法用来解析 JSON 字符串,构造由字符串描述的 JavaScript 值或对象。提供可选的 reviver 函数用以在返回之前对所得到的对象执行变换 (操作)。

参数

参数名 参数类型 是否必填 描述
text string 要被解析成 JavaScript 值的字符串
reviver (this : any, key : string, value : any) => any [可选] 转换器,如果传入该参数 (函数),可以用来修改解析生成的原始值,调用时机在 parse 函数返回之前。

返回值

类型
any
class Persion {
   var name =""
   var age = 0
}

// 带泛型的parse,这里的personObj 类型是 我们定义的`Persion`类
let personObj = JSON.parse<Persion>('{"name":"zhangsan","age":12}')
// 不带泛型的parse,这里的jsonObj类型是通用的`UTSJSONObject`
let jsonObj = JSON.parse('{"name":"zhangsan","age":12}')
复制代码

与不带泛型的JSON.parse 相比,多了一个<Persion> 尖括号 用来指定返回类型。

相比不带泛型的parse函数,带泛型的 parse函数,会提高反序列数据的开发效率,明确的结构数据可以提升工程健壮度

兼容性

安卓系统版本 安卓 uni-app 安卓 uni-app-x iOS 系统版本 iOS uni-app iOS uni-app-x
4.4 3.9.0 9.0 x

#stringify(value, replacer?, space?)

JSON.stringify() 方法将一个 JavaScript 对象或值转换为 JSON 字符串,如果指定了一个 replacer 函数,则可以选择性地替换值,或者指定的 replacer 是数组,则可选择性地仅包含数组指定的属性

参数

参数名 参数类型 是否必填 描述
value any 将要序列化成 一个 JSON 字符串的值。
replacer (this : any, key : string, value : any) => any 如果该参数是一个函数,则在序列化过程中,被序列化的值的每个属性都会经过该函数的转换和处理;如果该参数是一个数组,则只有包含在这个数组中的属性名才会被序列化到最终的 JSON 字符串中;如果该参数为 null 或者未提供,则对象所有的属性都会被序列化。 app-ios/app-android 暂不支持
space string | number 指定缩进用的空白字符串,用于美化输出(pretty-print);如果参数是个数字,它代表有多少的空格;上限为 10。该值若小于 1,则意味着没有空格;如果该参数为字符串(当字符串长度超过 10 个字母,取其前 10 个字母),该字符串将被作为空格;如果该参数没有提供(或者为 null),将没有空格。 app-ios/app-android 暂不支持

返回值

类型
string
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""
复制代码

兼容性

安卓系统版本 安卓 uni-app 安卓 uni-app-x iOS 系统版本 iOS uni-app iOS uni-app-x
4.4 3.9.0 9.0 3.9.0

#stringify(value, replacer?, space?)

JSON.stringify() 方法将一个 JavaScript 对象或值转换为 JSON 字符串,如果指定了一个 replacer 函数,则可以选择性地替换值,或者指定的 replacer 是数组,则可选择性地仅包含数组指定的属性

参数

参数名 参数类型 是否必填 描述
value any 将要序列化成 一个 JSON 字符串的值。
replacer (number | string)[] | null 如果该参数是一个函数,则在序列化过程中,被序列化的值的每个属性都会经过该函数的转换和处理;如果该参数是一个数组,则只有包含在这个数组中的属性名才会被序列化到最终的 JSON 字符串中;如果该参数为 null 或者未提供,则对象所有的属性都会被序列化。 app-ios/app-android 暂不支持
space string | number 指定缩进用的空白字符串,用于美化输出(pretty-print);如果参数是个数字,它代表有多少的空格;上限为 10。该值若小于 1,则意味着没有空格;如果该参数为字符串(当字符串长度超过 10 个字母,取其前 10 个字母),该字符串将被作为空格;如果该参数没有提供(或者为 null),将没有空格。 app-ios/app-android 暂不支持

返回值

类型
string

兼容性

安卓系统版本 安卓 uni-app 安卓 uni-app-x iOS 系统版本 iOS uni-app iOS uni-app-x
4.4 3.9.0 9.0 3.9.0

#parseObject(text: string)

JSON.parseObject() 方法用来解析 JSON 字符串,构造由字符串描述的对象。 如果输入的是一个合法的json对象,返回一个对应的UTSJSONObject,如果是json array 或者其他格式的字符串返回null

参数

参数名 参数类型 是否必填 描述
text string 要被解析成 JavaScript 值的字符串

返回值

类型 描述
UTSJSONObject | null 返回一个UTSJSONObjet 或者 null

兼容性

安卓系统版本 安卓 uni-app 安卓 uni-app-x iOS 系统版本 iOS uni-app iOS uni-app-x
4.4 3.9.0 9.0 x

#parseObject<T>(text: string)

JSON.parseObject() 方法用来解析 JSON 字符串,构造由字符串描述的对象,该对象的类型由泛型参数T决定 如果输入的是一个合法的json对象,返回一个对应的T对象,如果是json array 或者其他格式的字符串返回null

参数

参数名 参数类型 是否必填 描述
text string 要被解析成 JavaScript 值的字符串

返回值

类型 描述
T | null 返回一个T类型对象 或者 null

兼容性

安卓系统版本 安卓 uni-app 安卓 uni-app-x iOS 系统版本 iOS uni-app iOS uni-app-x
4.4 3.9.0 3.9.0 9.0 3.9.0 x

#parseArray(text: string)

JSON.parseArray() 方法用来解析 JSON 字符串,构造由字符串描述的数组。数组元素类型为any 如果输入的是一个合法的json数组,返回一个对应的Array,如果是json object 或者其他格式的字符串返回null

参数

参数名 参数类型 是否必填 描述
text string 要被解析成 JavaScript 值的字符串

返回值

类型 描述
Array<any> | null 返回一个Array 或者 null

兼容性

安卓系统版本 安卓 uni-app 安卓 uni-app-x iOS 系统版本 iOS uni-app iOS uni-app-x
4.4 3.9.0 9.0 x

#parseArray<T>(text: string)

JSON.parseArray() 方法用来解析 JSON 字符串,构造由字符串描述的数组。数组元素类型由泛型T决定 如果输入的是一个合法的json数组,返回一个对应的Array,如果是json object 或者其他格式的字符串返回null

参数

参数名 参数类型 是否必填 描述
text string 要被解析成 JavaScript 值的字符串

返回值

类型 描述
Array<T> | null 返回一个Array 或者 null

兼容性

安卓系统版本 安卓 uni-app 安卓 uni-app-x iOS 系统版本 iOS uni-app iOS uni-app-x
4.4 3.9.0 9.0 x