您的位置:

类库jsoncpp之二,jsoncpp使用

类库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 ,

类库jsoncpp之二,jsoncpp使用

本文目录一览: 1、怎么判断一个jsoncpp对象是否为空 怎么判断一个jsoncpp对象是否为空 英文:Prateek Singh 译文:zoomdongJSON.stringify 方法能将一个

2023-12-08
类库jsoncpp之一(jsoncpp使用)

本文目录一览: 1、jsoncpp和rapidjson哪个好用? jsoncpp和rapidjson哪个好用? 程序员的秘诀是:编程、编程、再编程。简单性真的对这个问题一窍不通,但是专人说:Rapid

2023-12-08
jsoncpp源码包含,jsoncpp解析json

2022-11-22
jsoncpp的下载及使用

2023-05-19
深入理解jsoncpp

2023-05-21
json源码库,json视频源码

本文目录一览: 1、求asp编辑JSON数据文件的类源码 2、C++ JsonCpp如何获取数据 3、用java生成json文件,怎么编写? 4、js 解析json数据填充到html里,求源码~~ 5

2023-12-08
c++解析json数组,c语言构造json数组对象实例

本文目录一览: 1、c#后台解析json数组,该怎么解决 2、JSON中数组该如何解析呢?c++中使用jsoncpp 3、cjson数组如何解析 4、JSON解析器json-c c#后台解析json数

2023-12-08
json解析c实现(c++json解析库)

本文目录一览: 1、怎么用C语言获取JSON中的数据? 2、c#解析JSON的几种办法 3、C++ json解析 怎么用C语言获取JSON中的数据? 用C语言获取JSON中的数据的方法是使用 CJSO

2023-12-08
cjsonobject用法,cjproject

本文目录一览: 1、C++ json解析 2、谁给推荐一个C++的JSON库 3、怎么用C语言获取JSON中的数据? 4、c#解析JSON的几种办法 C++ json解析 C++ 解析Json——js

2023-12-08
c++json库对比,c# json类

本文目录一览: 1、linux 下c程序哪一个json库比较好用 2、jsoncpp和rapidjson哪个好用? 3、有哪些 C++ 的 JSON 库比较好 4、C语言读取多行json文件数据 用哪

2023-12-08
cjson代码生成,cjson生成json

本文目录一览: 1、C++ json解析 2、c#解析JSON的几种办法 3、谁给推荐一个C++的JSON库 C++ json解析 C++ 解析Json——jsoncppJSON(JavaScript

2023-12-08
c++json库有哪些(c# json使用)

本文目录一览: 1、c语言 解析json字符串 2、jsoncpp和rapidjson哪个好用? 3、有哪些 C++ 的 JSON 库比较好 4、用C语言解析JSON数据 5、c#解析JSON的几种办

2023-12-08
linux下cjson使用,linux cjson

本文目录一览: 1、jsoncpp Linux详细用法(C++) 为什么我的jsoncpp就是读取不出东西来呢? 2、linux 下c程序哪一个json库比较好用 3、如何在linux中使用命令行解析

2023-12-08
c读取并解析json数据,net解析json

本文目录一览: 1、C++ json解析 2、JSON解析器json-c 3、cjson数组如何解析 4、如何使用c语言获取文件中的json数据 5、C#中怎么解析JSON数据? 6、c如何解析jso

2023-12-08
linux解析50gjson,Linux解析多线程

本文目录一览: 1、有没有ubuntu的json解析工具 2、jsoncpp Linux详细用法(C++) 为什么我的jsoncpp就是读取不出东西来呢? 3、如何在linux中使用命令行解析json

2023-12-08
关于linux下编译qjson的信息

本文目录一览: 1、linux下 qt程序源代码如何编译运行 2、linux下怎样编译程序 3、linux下执行qt程序怎么编译运行 4、怎么在linux里安装json 5、linux下 qt程序源代

2023-12-08
JSONC详解指南

2023-05-17
cjson解析库(cjson解析数组)

本文目录一览: 1、【Lua】cjson解析null 2、cjson嵌套多少层 3、请教Qt如何解析出Json的数据 4、有哪些 C++ 的 JSON 库比较好 【Lua】cjson解析null 最近

2023-12-08
nlohmann/json简介及详解

2023-05-18
cocoscreatorjson的简单介绍

本文目录一览: 1、Cocos Creator 怎么POST和get 2、cocos creator打开项目后变白不显示东西 3、Cocos creator的h5初始化loading时间为什么比egr

2023-12-08