- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章JSON stringify方法原理及实例解析由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
JSON.stringify() 方法用于将 JavaScript 值转换为 JSON 字符串.
语法 。
JSON.stringify(value[, replacer[, space]]) 。
参数说明:
value
必需, 要转换的 JavaScript 值(通常为对象或数组).
replacer
可选。用于转换结果的函数或数组.
如果 replacer 为函数,则 JSON.stringify 将调用该函数,并传入每个成员的键和值。使用返回值而不是原始值。如果此函数返回 undefined,则排除成员。根对象的键是一个空字符串:"".
如果 replacer 是一个数组,则仅转换该数组中具有键值的成员。成员的转换顺序与键在数组中的顺序一样.
space
可选,文本添加缩进、空格和换行符,如果 space 是一个数字,则返回值文本在每个级别缩进指定数目的空格,如果 space 大于 10,则文本缩进 10 个空格。space 也可以使用非数字,如:\t.
返回值: 返回包含 JSON 文本的字符串.
实例 。
1
2
3
4
5
6
7
8
9
10
11
|
var
str = {
"name"
:
"菜鸟教程"
,
"site"
:
"http://www.runoob.com"
}
str_pretty1 = JSON.stringify(str)
document.write(
"只有一个参数情况:"
);
document.write(
"<br>"
);
document.write(
"<pre>"
+ str_pretty1 +
"</pre>"
);
document.write(
"<br>"
);
str_pretty2 = JSON.stringify(str,
null
, 4)
//使用四个空格缩进
document.write(
"使用参数情况:"
);
document.write(
"<br>"
);
document.write(
"<pre>"
+ str_pretty2 +
"</pre>"
);
// pre 用于格式化输出
|
但是 IE6-7 下没有 JSON 对象,所以要借助json2.js来实现.
今天我们来简单介绍下stringify方法的一些正确使用姿势吧.
当然,让高手们贱笑了,本文只是分享一些方法给新手朋友们.
1
2
3
4
5
6
7
|
var
data = [
{name:
"王尼玛"
, sex:1, age: 30},
{name:
"王尼美"
, sex:0, age: 20},
{name:
"王大锤"
, sex:1, age: 30}
];
var
str_json = JSON.stringify(data);
console.log(str_json);
|
这个是我们日常用法,非常简单,对吧.
比如说,我们的数据非常复杂,还有类似头像,昵称,个人签名之类的信息。 可是我保存在本地,只需要用户名,和性别,肿么破呢? 也许你会说 so easy, 遍历数据重新提取下即可。 例如:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
var
data = [
{name:
"王尼玛"
, sex:1, age: 30},
{name:
"王尼美"
, sex:0, age: 20},
{name:
"王大锤"
, sex:1, age: 30}
];
for
(
var
i=0, new_data=[]; i<data.length; i++) {
new_data.push({
name: data[i].name,
sex: data[i].sex
});
}
var
str_json = JSON.stringify(new_data);
console.log(str_json);
|
确实分分钟搞定.
其实我们只需要用stringify第二个参数即可简单处理这种问题.
1
2
3
4
5
6
7
|
var
data = [
{name:
"王尼玛"
, sex:1, age: 30},
{name:
"王尼美"
, sex:0, age: 20},
{name:
"王大锤"
, sex:1, age: 30}
];
var
str_json = JSON.stringify(data, [
"name"
,
"sex"
]);
console.log(str_json);
|
第二个参数只要传入需要的keys数组,就非常轻松的就完成这种处理了.
当然如果我们要更纠结的处理,比如要把 1,0 修改为男女,那么第二个参数可以用回调函数来处理.
1
2
3
4
5
6
7
8
9
10
11
12
|
var
data = [
{name:
"王尼玛"
, sex:1, age: 30},
{name:
"王尼美"
, sex:0, age: 20},
{name:
"王大锤"
, sex:1, age: 30}
];
var
str_json = JSON.stringify(data,
function
(k, v) {
if
(k ===
"sex"
) {
return
[
"女"
,
"男"
][v];
}
return
v;
});
console.log(str_json);
|
第二个参数如此强悍,为我们省去了不少麻烦.
还有第三个参数,用于格式化字符串用的.
1
2
3
4
5
6
7
8
9
|
var
data = [
{name:
"王尼玛"
, sex:1, age: 30},
{name:
"王尼美"
, sex:0, age: 20},
{name:
"王大锤"
, sex:1, age: 30}
];
var
str_json = JSON.stringify(data,
null
,
"\t"
);
console.log(str_json);
str_json = JSON.stringify(data, [
"name"
,
"sex"
],
"\t"
);
console.log(str_json);
|
其实,我觉得这是个非常鸡肋的功能,,一般情况下却是没啥用.
好了,今天的分享就这些了,希望对新手朋友有所帮助.
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我.
原文链接:https://www.cnblogs.com/KillBugMe/p/12411286.html 。
最后此篇关于JSON stringify方法原理及实例解析的文章就讲到这里了,如果你想了解更多关于JSON stringify方法原理及实例解析的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
最近开始学习MongoDB。今天老师教了我们 mongoexport 命令。在练习时,我遇到了一个典型的问题,包括教练在内的其他同学都没有遇到过。我在我的 Windows 10 机器上使用 Mongo
我是 JSON Schema 的新手,读过什么是 JSON Schema 等等。但我不知道如何将 JSON Schema 链接到 JSON 以针对该 JSON Schema 进行验证。谁能解释一下?
在 xml 中,我可以在另一个 xml 文件中包含一个文件并使用它。如果您的软件从 xml 获取配置文件但没有任何方法来分离配置,如 apache/ngnix(nginx.conf - site-av
我有一个 JSON 对象,其中包含一个本身是 JSON 对象的字符串。我如何反序列化它? 我希望能够做类似的事情: #[derive(Deserialize)] struct B { c: S
考虑以下 JSON { "a": "{\"b\": 12, \"c\": \"test\"}" } 我想定义一个泛型读取 Reads[Outer[T]]对于这种序列化的 Json import
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 11 个月前关闭。 Improve
我的旧项目在 MySQL 中有 Standard JSON 格式的数据。 对于我在 JS (Node.js) 和 DynamoDB 中的全新项目,关于 Standard JSON格式: 是否建议将其转
JSON 值字符串、数字、true、false、null 是否是有效的 JSON? 即,是 true 一个有效的 JSON 文档?还是必须是数组/对象? 一些验证器接受这个(例如 http://jso
我有一个 JSON 字符串,其中一个字段是文本字段。这个文本字段可以包含用户在 UI 中输入的文本,如果他们输入的文本是 JSON 文本,也许是为了说明一些编码,我需要对他们的文本进行编码,以便它不会
我正在通过 IBM MQ 调用处理数据,当由 ColdFusion 10 (10,0,11,285437) 序列化时,0 将作为 +0.0 返回,它会导致无效的 JSON并且无法反序列化。 stPol
我正在从三个数组中生成一个散列,然后尝试构建一个 json。我通过 json object has array 成功了。 require 'json' A = [['A1', 'A2', 'A3'],
我从 API 接收 JSON,响应可以是 30 种类型之一。每种类型都有一组唯一的字段,但所有响应都有一个字段 type 说明它是哪种类型。 我的方法是使用serde .我为每种响应类型创建一个结构并
我正在下载一个 JSON 文件,我已将其检查为带有“https://jsonlint.com”的有效 JSON 到文档目录。然后我打开文件并再次检查,结果显示为无效的 JSON。这怎么可能????这是
我正在尝试根据从 API 接收到的数据动态创建一个 JSON 对象。 收到的示例数据:将数据解码到下面给出的 CiItems 结构中 { "class_name": "test", "
我想从字符串转换为对象。 来自 {"key1": "{\n \"key2\": \"value2\",\n \"key3\": {\n \"key4\": \"value4\"\n }\n
目前我正在使用以下代码将嵌套的 json 转换为扁平化的 json: import ( "fmt" "github.com/nytlabs/gojsonexplode" ) func
我有一个使用来自第三方 API 的数据的应用程序。我需要将 json 解码为一个结构,这需要该结构具有“传入”json 字段的 json 标签。传出的 json 字段具有不同的命名约定,因此我需要不同
我想使用 JSON 架构来验证某些值。我有两个对象,称它们为 trackedItems 和 trackedItemGroups。 trackedItemGroups 是组名称和 trackedItem
考虑以下案例类模式, case class Y (a: String, b: String) case class X (dummy: String, b: Y) 字段b是可选的,我的一些数据集没有字
我正在存储 cat ~/path/to/file/blah | 的输出jq tojson 在一个变量中,稍后在带有 JSON 内容的 curl POST 中使用。它运作良好,但它删除了所有换行符。我知
我是一名优秀的程序员,十分优秀!