JSON序列化与反序列化

JSON序列化与反序列化一 JSON 语法重点 1 简单值里面不包括 undefined 2 JSON 字符串必须使用双引号 单引号会导致语法错误 3 JSON 与 JS 对象的不同之处 JSON 不用声明变量 不用分号结束 属性名必须用双引号包裹 二 JSON 序列化与反序列化 1 JSON stringify constinfo name lx age 24 hobby tv shopping constjsonTex

一.JSON语法

JSON序列化与反序列化

重点:

1.简单值里面不包括undefined !!!

2.JSON字符串必须使用双引号,单引号会导致语法错误。

3.JSON与JS对象的不同之处:JSON不用声明变量,不用分号结束,属性名必须用双引号包裹。

二,JSON序列化与反序列化

1.JSON.stringify()

const info = { name: 'lx', age: 24, hobby: ['tv', 'shopping'] } const jsonText = JSON.stringify(info) console.log(jsonText) // {"name":"lx","age":24,"hobby":["tv","shopping"]}

JSON.stringify()的第二个参数,相当于过滤器,可以是数组或者函数,数组里有什么就返回什么。

const info = { name: 'lx', age: 24, hobby: ['tv', 'shopping'] } // 数组 const jsonText2 = JSON.stringify(info, ['name', 'hobby']) console.log(jsonText2) // {"name":"lx","hobby":["tv","shopping"]} // 函数 const jsonText3 = JSON.stringify(info, (key, value) => { switch (key) { case 'name': return 'lxlx' case 'hobby': return value.join() case 'age': return undefined default: return value } }) console.log(jsonText3) // {"name":"lxlx","hobby":"tv,shopping"}当值为undefined时不显示

JSON.stringify()的第三个参数用来控制缩进,第三个参数可以是数值或者字符串,且不大于10,数值大于10,当成0来处理,字符串大于10,只截取前10位

const info = { name: 'lx', age: 24, hobby: ['tv', 'shopping'] } const jsonText3 = JSON.stringify(info, null, 8) console.log(jsonText3) { "name": "lx", "age": 24, "hobby": [ "tv", "shopping" ] } const jsonText4 = JSON.stringify(info, null, '--') console.log(jsonText4) { --"name": "lx", --"age": 24, --"hobby": [ ----"tv", ----"shopping" --] }

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/230563.html原文链接:https://javaforall.net

(0)
上一篇 2026年2月15日 下午4:01
下一篇 2026年2月15日 下午4:22


相关推荐

  • 传统的行存储和(HBase)列存储的区别「建议收藏」

    传统的行存储和(HBase)列存储的区别「建议收藏」1为什么要按列存储列式存储(Columnarorcolumn-based)是相对于传统关系型数据库的行式存储(Row-basedstorage)来说的。简单来说两者的区别就是如何组织表(翻译不好,直接抄原文了):Ø Row-basedstoragestoresatableinasequenceofrows.Ø Column-basedstorag

    2022年7月16日
    23
  • git从远程分支拉取代码_git更新分支下的代码

    git从远程分支拉取代码_git更新分支下的代码查看远程所有分支$gitbranch-a创建分支gitbranch[branchname]需要注意,创建分支时,不会有什么提示。新建分支并切换到指定分支gitcheckout-bmasterorigin/mastergitcheckout-b本地分支名origin/远程分支名拉取远程分支代码gitpullorigin/master使用上面的命令可以创建分支名并且关联到远程的分支,但是远程分支存在gitpush多次,发现关联分支的本地代码不是最新的,

    2026年2月6日
    2
  • 数据结构之循环队列

    数据结构之循环队列数据结构之循环队列前言:关于循环队列需明白以下几点:1、循环队列是队列的顺序存储结构2、循环队列用判断是否为空利用Q.front=Q.rear3、循环队列头指针始终指向队列头元素,而尾指针始终指向队列尾元素的下一个位置4、按照队列的定义,队头删除,队尾插入,在这里插入图片描述会导致队头之前可能有空余的内存空间(如下图J1,J2出队后,空间被浪费),为了解决该问题,提出循环队列的解决方…

    2022年6月2日
    39
  • 手机上编写Java程序的软件

    手机上编写Java程序的软件对于程序员来说,编写代码几乎都是在电脑上,但有时候在一些特殊情况下,没有电脑,或者不方便带电脑,这时就想,要是能在手机上写代码该多好啊。以前我也折腾过,找过许多软件,但感觉不如我意;但我并没有放弃,在浏览YouTube的时候,偶然发现了一款软件,好奇的我就下载来试了试,还真是好用,功能挺齐全的。下面就给大家推荐一下。Android系统由于本人用的是Android手机,就主要讲讲在Android…

    2022年6月9日
    37
  • [翻译 EF Core in Action 1.10] 应该在项目中使用EF Core吗?

    [翻译 EF Core in Action 1.10] 应该在项目中使用EF Core吗?

    2021年7月1日
    108
  • vue解构赋值_vue解构赋值_ES6解构赋值

    vue解构赋值_vue解构赋值_ES6解构赋值写 vue 或 react 项目 我们经常在接收到数据的时候 需要对数据进行二次加工操作 一些传统的办法可以实现对数据的加工 但利用到 ES6 的解构赋值 则更为简单 解构赋值主要分为对象的解构和数组的解构 在没有解构赋值的时候 我们的赋值是这样的 letarr 1 2 3 leta arr 0 letb arr 1 letc arr 2 这样写很繁琐 解构赋值可以轻松解决上面的问题 一 数

    2026年3月18日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号