问题标签 [reviver-function]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
15887 浏览

javascript - 如何使用 JSON.parse reviver 参数解析日期字符串

我的 JSON 字符串包含一个返回此类值的日期字段:

我对只解析日期而不是时间特别感兴趣。我尝试使用 reviver 函数,但有趣的是 reviver 函数从未被调用过!(在火狐上试过)

这是我的代码来实现这一点:

JSON.parse 在loadArticle从不调用dateReviver

我投资了一整天,但没有运气!有人可以帮我吗?

0 投票
2 回答
2599 浏览

javascript - 使用 JSON.parse reviver 混淆字段

我正在尝试使用 JSON.parse 滥用 reviver 函数。

我基本上想让某些字段为“null”。

如果我这样做:

整个 json_data 对象最终为空。事实上,不管我做什么,它定义了 json_object 的值。

有趣的是,这按预期工作:

属性“name”现在的值为“name”。

有问题的JSON:

更新

我刚刚意识到与我想做的相反的事情也有效,所以我可以取消 name 字段:

0 投票
1 回答
267 浏览

javascript - JSON.parse reviver 函数有 n+1 个键?

我想测试在解析 JSON 字符串时可以提供 reviver 函数的代码重载。

所以这段代码:

产量10(好的)。

但后来我问自己,“这是什么if (k === "")东西?” 让我们删除它!:

也许是因为 5 是一个整数?让我们尝试parseInt

很奇怪...

所以我想看看是哪些键(虽然这里只有一个)造成了麻烦:

有 2 个警报:

  • 5

  • [object Object]

恕我直言kandv用于keyand value,实际上这里只有一个键。

这个其他警报是什么为什么必须检查if (k === "")

0 投票
1 回答
648 浏览

json - Javascript:使用 reviver 功能,我似乎无法更改所有键,同时连接数字

我只想批量更改所有键X。但由于 concat,我似乎无法更改所有键。这是我从帖子中学到的。

请告知我如何用数字更改所有键。

代码是否过于冗长?

提前谢谢了。克莱门特

0 投票
1 回答
200 浏览

ajax - 为什么即使实例不为空,WCF AJAX 方法的参数也不会填充值?

我使用 jQuery.ajax 向我的服务器发送了一个 AJAX 请求,并且“数据”字段填充了与我的 ClientMessage 类型相对应的 JSON 字符串,但数据没有进入方法的主要参数。当方法在我调试时运行时,在 ProcessRequest 的数据参数中,ClientMessage 的所有成员都为空。

ClientMessage 类的成员是简单的自动实现的 get/set 字符串属性,使用 DataMember(Name="membername") 属性以及类本身的 DataContract 属性进行修饰。在客户端,Chrome 的开发人员工具显示 AJAX 请求的数据对象是有效的 JSON,我可以在请求查看器中展开它以验证正确的对象和正在发送的成员。

我只是无法弄清楚为什么 ClientMessage 数据实例的所有成员都带有空值(顺便说一句,它们都是简单的字符串)。

0 投票
1 回答
12532 浏览

javascript - 如何使用 Immutable.js 从 javascript 原始对象创建记录映射?

我是 immutable.js 的新手,我想更好地了解如何使用从原始 JS 对象开始的记录。

Immutable.fromJS()可以创建一个传递原始对象的地图,例如:

imagesMap现在是一个包含其他地图的地图,每个图像一个。

我想创建一个包含记录的地图,例如使用Image定义为的记录:

我怎样才能拥有s 的imagesMap地图ImageRecord?我可以做些什么,将复兴者传递给fromJS,还是应该采用“旧”方法?

0 投票
1 回答
1260 浏览

javascript - node.js JSON.parse reviver 不报告重复键?

我正在尝试使用一个 JSON 解析器来检测和保存重复的键。我在 node.js 中使用 JSON.parse() 和一个 reviver,我希望当我得到一个重复的密钥时会告诉我。然而事实并非如此。还有其他方法吗?是否有更好的 JSON 解析器来处理 reviver 或其他参数中的重复键?

输出是:

0 投票
1 回答
627 浏览

javascript - JSON.parse Reviver 函数中的意外行为,删除对象而不是关键属性

JSBin 链接让你可以快速运行代码。

JSbinhere

问题出在评论中,但是从文档中关于复活者(这个名字很糟糕)的工作方式来看,如果你不返回值或者如果你返回undefined,那么应该从对象中删除该属性。如果您返回未转换的值,它保持不变。

然而,当我对其进行测试时,看起来整个对象都被移除了。第一个例子工作得很好,偶数转换为负数,奇数不变。

但在第二个例子中,我什至没有得到一个对象,只是未定义。那么我是误读了文档还是有其他问题?

在第二个示例中,结果只是未定义。

0 投票
1 回答
104 浏览

javascript - JSON reviver 函数返回 undefined 即使返回

我已经阅读了其他类似的问题并尝试了他们在做什么,但我仍然不明白。为什么它返回 undefined ?

这里有问题的 JSON 是:

0 投票
1 回答
1918 浏览

javascript - JSON.parse reviver 函数嵌套对象

我的目标是JSON.parse用可选参数告诉函数,如果传递给函数的字符串有一个名为执行该表达式内部操作的键,然后继续向外工作以对字符串的其余部分进行操作reviver argument,我希望它.calc(string)"expr"

每次我运行这个我都会得到NaN

如果我注释掉calc(string)之前的最后两个调用,console.log(initNumber)则程序按预期运行。

因此,如果键是"expr"并且嵌套"op"键的值是"add"然后对该嵌套对象执行 add() 函数。如果"op"key 是"subtract".

非常感谢任何帮助。