JSON 您所在的位置:网站首页 json转换对象有问号怎么办 JSON

JSON

2024-07-13 18:11| 来源: 网络整理| 查看: 265

# JSON # 静态方法 # parse

JSON.parse() 方法用来解析 JSON 字符串,构造由字符串描述的对象。可能返回值是: UTSJSONObject/Array/number/boolean/string 等基本数据类型

特别说明: HBuilderX3.9.0统一为以上规范,在HBuilderX3.9.0之前版本 返回值只可能是 UTSJSONObject, 基本数据类型会转换失败 JSON.parse 目前仅支持第一个参数

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 JSON.parse 接口内部通过特殊方式读取了范型类型,不支持传入动态的范型:比如将外层方法的普通范型参数传入 JSON.parse。 # parse(text, reviver?)

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

Parameters

name type required description text string YES 要被解析成 JavaScript 值的字符串 reviver (this : any, key : string, value : any) => any NO [可选] 转换器,如果传入该参数 (函数),可以用来修改解析生成的原始值,调用时机在 parse 函数返回之前。

Return value

Type any class Person { name:string = "" age:number = 0 } // 带泛型的parse,这里的personObj 类型是 我们定义的`Persion`类 let personObj = JSON.parse('{"name":"zhangsan","age":12}') // 不带泛型的parse,这里的jsonObj类型是通用的`UTSJSONObject` let jsonObj = JSON.parse('{"name":"zhangsan","age":12}')

HBuilderX 3.9+,支持JSON.parse传入泛型。

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

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

Compatibility

Android version Android uni-app Android uni-app-x iOS version iOS uni-app iOS uni-app-x 4.4 √ 3.9.0 9.0 √ x # stringify(value, replacer?, space?)

注意:JSON.stringify 目前仅支持第一个参数

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

Parameters

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

Return value

Type 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""

序列化规则说明:

类型名称 适应范围 规则 基本类型 number/string/boolean 对应json格式中的 原型数据类型 容器数据类型 UTSArray/UTSJSONObject 对应json格式中的 jsonarray/jsonobject 自定义type 开发者使用type 声明的类型对象 被序列化为 jsonobject 自定义class 开发者使用class 声明的类型对象 被序列化为 空jsonobject对象: {} function 对象内部声明的函数 被序列化为 null

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

Parameters

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

Return value

Type string

Compatibility

Android version Android uni-app Android uni-app-x iOS version iOS uni-app iOS uni-app-x 4.4 √ 3.9.0 9.0 √ 3.9.0 # parseObject(text: string)

注意: 此函数需要 HBuilderX 3.9x 以上版本

# parseObject(text: string)

注意: 此函数需要 HBuilderX 3.9x 以上版本

# parseArray(text: string)

注意: 此函数需要 HBuilderX 3.9x 以上版本

# parseArray(text: string)

注意: 此函数需要 HBuilderX 3.9x 以上版本



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有