JSON.stringify(), JSON.parse(), 和 Object.keys(), join()

news2024/11/19 6:17:51

1. JSON.stringify()

JSON.stringify() 方法将一个 JavaScript 对象或者值(包括数组或布尔值)转换为一个 JSON 字符串。

代码示例‌:

const person = { name: "John", age: 30, city: "New York" }; 
const jsonString = JSON.stringify(person); 
console.log(jsonString); 
// 输出: {"name":"John","age":30,"city":"New York"}

可选参数‌:

  • replacer‌:可以是一个函数或数组,用于选择性地替换值。
  • space‌:用于添加缩进、空格和换行符,以便输出可读性更好。

带参数的示例‌:

const jsonStringPretty = JSON.stringify(person, null, 2); 
console.log(jsonStringPretty);
 // 输出: // { // "name": "John", // "age": 30, // "city": "New York" // }

2. JSON.parse()

JSON.parse() 方法将一个 JSON 字符串转换为 JavaScript 对象。

代码示例‌:

const jsonString = '{"name":"John","age":30,"city":"New York"}';
 const person = JSON.parse(jsonString); 
console.log(person); 
// 输出: { name: 'John', age: 30, city: 'New York' }
 console.log(person.name); // 输出: John

可选参数‌:

  • reviver‌:可以是一个函数,用于在解析过程中对结果进行逐项处理。

带参数的示例‌:

 
const jsonString = '{"name":"John","age":"30","city":"New York"}'; 
// 注意 age 是字符串 
const person = JSON.parse(jsonString, (key, value) => 
{ if (key === "age")
 { return parseInt(value); 
// 将 age 转换为数字 
} return value; });
 console.log(person); 
// 输出: { name: 'John', age: 30, city: 'New York' } 
console.log(typeof person.age);
// 输出: number

3. Object.keys()

Object.keys() 方法会返回一个包含一个给定对象自身的所有可枚举属性键的数组,数组中属性键的排列顺序和使用 for...in 循环遍历该对象时返回的顺序一致(两者的主要区别是 for...in 循环还会枚举其原型链上的属性)。

代码示例‌:

 
const person = { name: "John", age: 30, city: "New York" };
 const keys = Object.keys(person); console.log(keys);
 // 输出: ['name', 'age', 'city']

结合使用‌:

我们可以结合使用这些方法来处理对象。

综合示例‌:

const person = { name: "John", age: 30, city: "New York" }; 
// 将对象转换为 JSON 字符串
 const jsonString = JSON.stringify(person);
 console.log(jsonString); 
// 输出: {"name":"John","age":30,"city":"New York"} 
// 将 JSON 字符串解析回对象
 const parsedPerson = JSON.parse(jsonString); 
console.log(parsedPerson); 
// 输出: { name: 'John', age: 30, city: 'New York' } 
// 获取对象的所有键 
const keys = Object.keys(parsedPerson); 
console.log(keys); 
// 输出: ['name', 'age', 'city']

通过这些示例,希望你能更好地理解 JSON.stringify()JSON.parse(), 和 Object.keys() 的用法。

4. join()函数用法

join() 是 Python 中字符串类型(str)的一个方法,用于将序列中的所有元素(通常是字符串)以指定的字符连接生成一个新的字符串。

返回一个由 iterable 中所有元素通过 separator 连接而成的新字符串。

  1. 将列表中的字符串连接成一个新的字符串‌:
const array = [1, 2, 3];
const result = array.join();
console.log(result); // 输出: "1,2,3"

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2243203.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

生成式人工智能(AIGC)在软件开发设计模式课程教学中的应用

一、引言 软件设计模式作为软件工程领域的核心组成部分,对于提升软件系统的质量和可维护性至关重要。然而,传统的软件设计模式课程教学方法面临着诸多挑战,例如教师准备教学案例的过程繁琐,学生理解和应用具体案例难度较大&#…

丹摩征文活动|摩智算平台深度解析:Faster R-CNN模型的训练与测试实战

目录 文章前言Faster R-CNN的简介Faster RCNN的训练与测试提前准备1.1 mobaxterm(远程连接服务器)1.2 本文的源码下载 目标检测模型 Faster-Rcnn2.1云服务器平台 数据上传内置JupyterLab的使用本地连接使用DAMODEL实例获取实例的SSH访问信息通过SSH连接通…

【实用教程】如何利用 JxBrowser 在 Kotlin 中实现屏幕共享

JxBrowser是一个跨平台的 JVM 库,它允许您将基于 Chromium 的 Browser 控件集成到 Compose、Swing、JavaFX、SWT 应用程序中,并使用 Chromium 的数百种功能。为了在 Kotlin 中实现屏幕共享,我们利用了 Chromium 的 WebRTC 支持以及 JxBrowser…

无人机动力系统节能技术的未来发展趋势——CKESC电调小课堂12.1

无人机动力系统节能技术的未来发展趋势包括以下几个方面: 1. 能源类型多元化与高效化 新型电池技术的发展:锂离子电池的性能将不断提升,能量密度增加、充放电速度加快、循环寿命延长。同时,固态电池技术有望取得突破并应用于无人…

【汇编语言】数据处理的两个基本问题(二) —— 解密汇编语言:数据长度与寻址方式的综合应用

文章目录 前言1. 指令要处理的数据有多长?1.1 通过寄存器指明数据的尺寸1.1.1 字操作1.1.2 字节操作 1.2 用操作符X ptr指明内存单元的长度1.2.1 访问字单元1.2.2 访问字节单元1.2.3 为什么要用操作符X ptr指明 1.3 其他方法 2. 寻址方式的综合应用2.1 问题背景&…

【算法】【优选算法】前缀和(下)

目录 一、560.和为K的⼦数组1.1 前缀和1.2 暴力枚举 二、974.和可被K整除的⼦数组2.1 前缀和2.2 暴力枚举 三、525.连续数组3.1 前缀和3.2 暴力枚举 四、1314.矩阵区域和4.1 前缀和4.2 暴力枚举 一、560.和为K的⼦数组 题目链接:560.和为K的⼦数组 题目描述&#x…

【进阶系列】正则表达式 #匹配

正则表达式 正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。re模块使 Python 语言拥有全部的正则表达式功能。 一个正则表达式的匹配工具:regex101: build, test, and debug regex s "C:\\a\\b\\c" pri…

【技术解析】Dolphinscheduler实现MapReduce任务的高效管理

MapReduce是一种编程模型,用于处理和生成大数据集,主要用于大规模数据集(TB级数据规模)的并行运算。本文详细介绍了Dolphinscheduler在MapReduce任务中的应用,包括GenericOptionsParser与args的区别、hadoop jar命令参…

Debezium-MySqlConnectorTask

文章目录 概要整体架构流程技术名词解释技术细节小结 概要 MySqlConnectorTask,用于读取MySQL的二进制日志并生成对应的数据变更事件 整体架构流程 技术名词解释 数据库模式(Database Schema) 数据库模式是指数据库中数据的组织结构和定义&…

剧本杀门店预约小程序,解锁沉浸式推理体验

一、开发背景 剧本杀作为一种热门娱乐游戏,深受大众的欢迎,但随着市场的快速发展,竞争也在不断加大,对于剧本杀线下商家来说面临着发展创新。 剧本杀线下门店数量目前正在逐渐增加,竞争激烈,而门店的获客…

今天你学C++了吗——C++启航之入门知识

♥♥♥~~~~~~欢迎光临知星小度博客空间~~~~~~♥♥♥ ♥♥♥零星地变得优秀~也能拼凑出星河~♥♥♥ ♥♥♥我们一起努力成为更好的自己~♥♥♥ ♥♥♥如果这一篇博客对你有帮助~别忘了点赞分享哦~♥♥♥ ♥♥♥如果有什么问题可以评论区留言或者私信我哦~♥♥♥ ✨✨✨✨✨✨ 个…

【element-tiptap】Tiptap编辑器核心概念----结构篇

core-concepts 前言:这篇文章来介绍一下 Tiptap 编辑器的一些核心概念 (一)结构 1、 Schemas 定义文档组成方式。一个文档就是标题、段落以及其他的节点组成的一棵树。 每一个 ProseMirror 的文档都有一个与之相关联的 schema,…

LC69---219存在重复元素(滑动窗口)---Java版

1.题目描述 2.思路 3.代码实现 public class Solution { public boolean containsNearbyDuplicate(int[] nums, int k) {Map<Integer,Integer> m1new HashMap<>();// 1:0, 2:1,3:2,1:3 key存数组的值&#xff0c;value存索引&#xff0c;为getnum[i]做准备&am…

【C++】了解map和set及平衡二叉树和红黑树的原理

目录 ​编辑 一、关联式容器 二、 键值对 三、pair介绍 四、树形结构的关联式容器 4.1 set 4.2 map 4.3 multiset 4.4 multimaps 五、底层结构&#xff08;重点&#xff09; 5.1 AVL 树 5.1.1 AVL树的概念 5.1.2 AVL树节点的定义 5.1.3 AVL树的旋转 5.1.4 AVL树的…

LeetCode 力扣 热题 100道(五)最长回文子串(C++)

最长回文子串 给你一个字符串 s&#xff0c;找到 s 中最长的 回文子串。 回文性 如果字符串向前和向后读都相同&#xff0c;则它满足 回文性 子字符串子字符串 是字符串中连续的 非空 字符序列。 动态规划法 class Solution { public:string longestPalindrome(string s) {i…

Spring Boot汽车资讯:科技与汽车的新融合

摘要 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;管理信息系统的实施在技术上已逐步成熟。本文介绍了汽车资讯网站的开发全过程。通过分析汽车资讯网站管理的不足&#xff0c;创建了一个计算机管理汽车资讯网站的方案。文章介绍了汽车资讯网站的系统分析部分&…

逆向攻防世界CTF系列41-EASYHOOK

逆向攻防世界CTF系列41-EASYHOOK 看题目是一个Hook类型的&#xff0c;第一次接触&#xff0c;虽然学过相关理论&#xff0c;可以看我的文章 Hook入门(逆向)-CSDN博客 题解参考&#xff1a;https://www.cnblogs.com/c10udlnk/p/14214057.html和攻防世界逆向高手题之EASYHOOK-…

【网络】HTTP 协议

目录 基本概念基于 HTTP 的系统组成HTTP 的基本性质 HTTP 请求头 & 响应头HTTP 的请求方法HTTP 的返回码HTTP 的 CookieHTTP 缓存 Cache-Control会话HTTP/1.x 的连接管理 基本概念 HTTP&#xff08;Hypertext Transfer Protocol&#xff0c;超文本传输协议&#xff09;是一…

执行flink sql连接clickhouse库

手把手教学&#xff0c;flink connector打通clickhouse大数据库&#xff0c;通过下发flink sql&#xff0c;来使用ck。 组件版本jdk1.8flink1.17.2clickhouse23.12.2.59 1.背景 flink官方不支持clickhouse连接器&#xff0c;工作中难免会用到。 2.方案 利用GitHub大佬提供…

笔记|M芯片MAC (arm64) docker上使用 export / import / commit 构建amd64镜像

很简单的起因&#xff0c;我的东西最终需要跑在amd64上&#xff0c;但是因为mac的架构师arm64&#xff0c;所以直接构建好的代码是没办法跨平台运行的。直接在arm64上pull下来的docker镜像也都是arm64架构。 检查镜像架构&#xff1a; docker inspect 8135f475e221 | grep Arc…