【发布时间】:2020-04-21 21:04:43
【问题描述】:
是否可以在 JSON.parse 函数上使用 reviver 来更改正在解析的数据的结构?
例如,如何解析下面的字符串:
fruitString = "{"Apple":2,"Orange":4}";
到以下对象?
fruitPrices: { "Apple":{ "price": 2 }, "Orange":{ "price": 4 } }
我试过的是:
let fruitPrices = JSON.parse(fruitString, (key, value) => { return {key: {'price' => value}}; });
但我得到的是:
> fruitPrices:{
> key:{
> price:{
> Apple:{
> key:{
> price:2
> }
> }
> Orange:{
> key:{
> price:4
> }
> }
> }
> }
> }
请你帮我理解我做错了什么?
【问题讨论】:
-
你为什么要使用 JSON.parse 来解决这个问题?为什么不解析然后映射到您需要的内容?我认为这应该是要走的路
-
我想了解 reviver 回调函数是如何工作的。如果可能的话,我宁愿在解析数据时映射数据而不添加其他步骤。
标签: javascript json parsing