JavaScript - JSON

解析JSON

使用一个函数:

const jsonString = '[{"name":"John","score":51},{"name":"Jack","score":17}]';

const data = JSON.parse(jsonString, (key, value) =>
  key === 'name' ? value.toUpperCase() : value
);

结果为:

[
  {
    'name': 'JOHN',
    'score': 51
  },
  {
    'name': 'JACK',
    'score': 17
  }
]

当数据必须以序列化/编码的方式传输,但访问时必须要反序列化/解码时非常有用:

const jsonString = '{"date":"2016-01-04T23:00:00.000Z"}';

const data = JSON.parse(jsonString, (key, value) =>
  key === 'date' ? new Date(value) : value
);

要确保每次迭代都返回有用的值,如果返回的是 undefined,这条属性会被删除。

序列化一个值

一个 JavaScript值可以转换成一个JSON字符串,使用JSON.stringify() 函数:

// Boolean
JSON.stringify(true); // 'true'

// Number
JSON.stringify(12); // '12'

// String
JSON.stringify('foo'); // '"foo"'

// Object
JSON.stringify({});           // '{}'
JSON.stringify({foo: 'baz'}); // '{"foo": "baz"}'

// Array
JSON.stringify([1, true, 'foo']);  // '[1, true, "foo"]'

// Date
JSON.stringify(new Date());  // '"2016-08-06T17:25:23.588Z"'

// Symbol
JSON.stringify({
  x: undefined,
  y: Object,
  z: Symbol('')
}); // '{}'

为了可读性,可以在第3个参数指定缩进.

JSON.stringify({x: 1, y: 1}, null, 2); // 2 space characters will be used for indentation

结果是:

{
  'x': 1,
  'y': 1
}

或者一个字符串值也可以用于缩进。

JSON.stringify({x: 1, y: 1}, null, '\t'); // tab character will be used for indentation

结果是:

{
    'x': 1,
    'y': 1
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值