当前位置:网站首页 > Vue.js开发 > 正文

Json字符串转json是制定字段不转换(json字符串转换成对象有哪几种方法)



早期,一般是使用XML作为互联网上传输结构化数据的,但由于它解析麻烦,字符冗长,因此被轻量级的JSON所逐渐替代。JSON是JavaScript的一个严格子集,利用了JavaScript中一些模式来表示结构化的数据。可以直接将JSON格式的字符串传递给eval()进行处理,由于JSON是JS的子集,eval后变成json对象,可以使用’.’操作符直接操作属性;

值得注意:JSON是一种数据格式,不是一种语言,虽然与JS中定义对象字面量的形式相似,但JSON不从属于JavaScript,因为其它语言(如:PHP,JSP)中也有针对JSON的解析和序列化的方法操作。

语法

     JSON可以表示以下三种值:

  • 简单值:如字符串、数值、布尔值和null,但不支持undefined
  • 对象:对象作为一种复杂的数据类型,表示是一组无序的键值对儿,值可以是简单值也可以复杂的数据
  • 数组:数组作为一种复杂的数据类型,表示是一组有序的列表儿,可以通过索引来获取引用的值,值可以是简单值,也可以复杂数据对象

一个简单的JSON示例:

非常重要:JSON对象的属性(如上例中的“name”)必须加双引号

在实际使用中,经常会因为上面使用单引号或不使用引号造成序死化错误,从而无法生成JSON对象

序列化

     JSON被大家所认可,除了语法是JavaScript语法子集,更主要是可以直接eval序列化(但有一定风险,可能会执行一些恶意代码,如读cookie等)成可用的JS对象直接使用。ECMAScript 5对解析JSON进行规范,定义了全局对象JSON,支持的浏览器有:IE8+,Firefox 3.5+,Safari4+,Chrome和Opera 10.5+;

     JSON对象提供两个方法:stringify()和parse(),stringify()是将JSON对象转成字符串,而parse()则是将符合规范的字符串转成可用JSON对象。

stringify()

      space:是否保留缩进,默认不保留,并且删除所有换行。

1.如果省略的话,那么显示出来的值 就没有分隔符。直接输出来
2.如果是一个数字的话,那么它就定义缩进几个字符,当然 如果大于10 ,则最大值为10.
3.如果是一些转义字符,比如“ ”,表示回车,那么它每行一个回车。
4.如果仅仅是字符串,OK,就在每行输出值的时候把这些字符串附加上去就OK。当然,最大长度也是10个字符。

       实例:

      使用数组过滤,只保留:name及locaiton

      使用函数过滤,对于name属性值单独处理,在之前输出:”my name is :”

      使用缩进,缩进4个空白:

parse()

参数

          text :必需。 一个有效的 JSON 字符串。

           reviver :可选。 一个转换结果的函数。 将为对象的每个成员调用此函数。 如果成员包含嵌套对象,则先于父对象转换嵌套对象。 对于每个成员,会发生以下情况:

如果 reviver 返回一个有效值,则成员值将替换为转换后的值。

如果 reviver 返回它接收的相同值,则不修改成员值。

如果 reviver 返回 null 或 undefined,则删除成员。

返回值:一个对象或数组

示例:

以下示例演示了如何使用 JSON.stringify 将数组转换成 JSON 字符串,然后使用 JSON.parse 将该字符串还原成数组。

到此这篇Json字符串转json是制定字段不转换(json字符串转换成对象有哪几种方法)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • js数组方法中,哪些不能改变自身数组(js数组中哪些方法不会改变原数组)2025-05-08 21:18:08
  • vue生命周期钩子函数(详解及使用场景)(vue生命周期钩子函数顺序)2025-05-08 21:18:08
  • vue路由守卫的几种方法(vue-router路由守卫)2025-05-08 21:18:08
  • vue 关闭eslint(vue 关闭浏览器触发)2025-05-08 21:18:08
  • 安装node环境 vue npm(怎样安装node.js环境)2025-05-08 21:18:08
  • vue组件嵌套与插槽嵌套(vue嵌套vue)2025-05-08 21:18:08
  • vue2插槽(vue2插槽slot接收父组件值)2025-05-08 21:18:08
  • ubuntu18.04源地址(ubuntu18.04源配置)2025-05-08 21:18:08
  • vue安装步骤(vue3怎么安装)2025-05-08 21:18:08
  • js深拷贝和浅拷贝概念(js深拷贝和浅拷贝概念一样吗)2025-05-08 21:18:08
  • 全屏图片