类库jsoncpp之二,jsoncpp使用

本文目录一览:

怎么判断一个jsoncpp对象是否为空

英文:Prateek Singh 译文:zoomdong

JSON.stringify 方法能将一个 Java 对象或值转换成一个 JSON 字符串。

作为一名 Java 开发人员,JSON.stringify 是用于调试的最常见函数。但是它的作用是什么呢,难道我们不能使用 console.log 来做同样的事情吗?让我们试一试。

//初始化一个 user 对象

const user = {

“name” : “Prateek Singh” ,

“age” : 26

}

console . log ( user );

// 结果

// [object Object]

哦!console.log 没有帮助我们打印出期望的结果。它输出 [object Object],因为从对象到字符串的默认转换是 [object Object]。因此,我们使用 JSON.stringify 首先将对象转换成字符串,然后在控制台中打印,如下所示。

const user = {

“name” : “Prateek Singh” ,

“age” : 26

}

console . log ( JSON . stringify ( user ));

// 结果

// “{ “name” : “Prateek Singh”, “age” : 26 }”

一般来说,开发人员使用 stringify 函数的场景较为普遍,就像我们在上面做的那样。但我要告诉你一些隐藏的秘密,这些小秘密会让你开发起来更加轻松。

第二个参数(数组)

是的,stringify 函数也可以有第二个参数。它是要在控制台中打印的对象的键数组。看起来很简单?让我们更深入一点。我们有一个对象 product 并且我们想知道 product 的 name 属性值。当我们将其打印出来:

console . log ( JSON . stringify ( product ));

它会输出下面的结果。

{ “id” : “0001” , “type” : “donut” , “name” : “Cake” , “ppu” : 0.55 , “batters” :{ “batter” :[{ “id” : “1001” , “type” : “Regular” },{ “id” : “1002” , “type” : “Chocolate” },{ “id” : “1003” , “type” : “Blueberry” },{ “id” : “1004” , “type” : “Devil’s Food” }]}, “topping” :[{ “id” : “5001” , “type” : “None” },{ “id” : “5002” , “type” : “Glazed” },{ “id” : “5005” , “type” : “Sugar” },{ “id” : “5007” , “type” : “Powdered Sugar” },{ “id” : “5006” , “type” : “Chocolate with Sprinkles” },{ “id” : “5003” , “type” : “Chocolate” },{ “id” : “5004” , “type” : “Maple” }]}

在日志中很难找到 name 键,因为控制台上显示了很多没用的信息。当对象变大时,查找属性的难度增加。stringify 函数的第二个参数这时就有用了。让我们重写代码并查看结果。

console . log ( JSON . stringify ( product ,[ ‘name’ ]);

// 结果

{ “name” : “Cake” }

问题解决了,与打印整个 JSON 对象不同,我们可以在第二个参数中将所需的键作为数组传递,从而只打印所需的属性。

第二个参数(函数)

我们还可以传入函数作为第二个参数。它根据函数中写入的逻辑来计算每个键值对。如果返回 undefined,则不会打印键值对。请参考示例以获得更好的理解。

const user = {

“name” : “Prateek Singh” ,

“age” : 26

}

// 结果

{ “age” : 26 }

只有 age 被打印出来,因为函数判断 typeOf 为 String 的值返回 undefined。

第三个参数为数字

第三个参数控制最后一个字符串的间距。如果参数是一个数字,则字符串化中的每个级别都将缩进这个数量的空格字符。

// 注意:为了达到理解的目的,使用 ‘–‘ 替代了空格

JSON . stringify ( user , null , 2 );

//{

//–“name”: “Prateek Singh”,

//–“age”: 26,

//–“country”: “India”

//}

第三个参数为字符串

如果第三个参数是 string,那么将使用它来代替上面显示的空格字符。

JSON . stringify ( user , null , ‘**’ );

//{

//**”name”: “Prateek Singh”,

//**”age”: 26,

//**”country”: “India”

//}

// 这里 * 取代了空格字符

toJSON 方法

我们有一个叫 toJSON 的方法,它可以作为任意对象的属性。JSON.stringify 返回这个函数的结果并对其进行序列化,而不是将整个对象转换为字符串。参考下面的例子。

const user = {

firstName : “Prateek” ,

lastName : “Singh” ,

age : 26 ,

原创文章,作者:BTRO,如若转载,请注明出处:https://www.506064.com/n/141714.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
BTROBTRO
上一篇 2024-10-08 17:56
下一篇 2024-10-08 17:56

相关推荐

  • 详解 AndroidUtilCode 工具类库

    一、介绍 AndroidUtilCode 是一款收录了大量常用工具类的 Android 库,全称为 Android Util Code,是 Android 平台上的工具类库。这个库…

    编程 2025-04-13
  • 深入理解jsoncpp

    一、jsoncpp介绍 jsoncpp是一个用于序列化和反序列化JSON数据的C++库。它由Thunder Jenkins编写,可用于许多不同类型的应用程序,从简单的命令行工具到大…

    编程 2025-04-12
  • 常用python库总结(总结Python数据分析常用类库)

    本文目录一览: 1、对python学习的总结怎么写 2、常用的十大python图像处理工具 3、Python GUI库大汇总 4、2017年10大流行Python库有哪些 5、如何…

    编程 2025-01-14
  • phpadodb类库下载,php adodb

    本文目录一览: 1、ADODB是什么意思 2、PHP配置完成后,通过Adodb连接mysql后无法执行查询等方式。 3、如何加载第三方类库phpexcel的所有PHP文件 4、PH…

    编程 2025-01-14
  • 为什么java可以自动导入类库,java怎么导入库

    本文目录一览: 1、java自带类库为什么可以直接导入 2、JVM虚拟机为什么会默认自动导入java.lang包? 这个包特殊之处在哪里? 3、java中,为什么有些类不需要导入?…

    编程 2025-01-11
  • java类库,java类库手册

    本文目录一览: 1、什么是java jdk? 2、java基础类库中提供的类能不能直接使用 3、Java类库和包有什么区别? 4、java常用类库有哪些 5、什么是Java类库? …

    编程 2025-01-04
  • php实用工具类的集合(php常用类库)

    本文目录一览: 1、常用的php开发工具有哪些 2、比较常用的几个PHP开发工具 3、php开发软件有哪些 4、PHP常用开发工具? 常用的php开发工具有哪些 1、EditPlu…

    编程 2025-01-04
  • php的图片处理,php图片处理类库

    本文目录一览: 1、php 处理图片问题 2、PHP 图片处理 3、php图片处理库,有哪些,imagick怎么样,比GD库性能高吗 php 处理图片问题 把你的邮箱留下来,我把代…

    编程 2025-01-01
  • nodejs常用类库(nodejs模块有哪些)

    本文目录一览: 1、nodejs 常用工具库 :) 2、NodeJS常用包介绍–slash 3、开发中用nodejs做了哪些方面的工作 nodejs 常用工具库 :) …

    编程 2025-01-01
  • python高级编程之二,python编程基础

    本文目录一览: 1、《Python高级编程(第二版)》epub下载在线阅读,求百度网盘云资源 2、要想学习Python高级编程,需要学习哪些内容? 3、Python主要内容学的是什…

    编程 2025-01-01

发表回复

登录后才能评论