问题标签 [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.
javascript - 如何使用 JSON.parse reviver 参数解析日期字符串
我的 JSON 字符串包含一个返回此类值的日期字段:
我对只解析日期而不是时间特别感兴趣。我尝试使用 reviver 函数,但有趣的是 reviver 函数从未被调用过!(在火狐上试过)
这是我的代码来实现这一点:
JSON.parse 在loadArticle
从不调用dateReviver
。
我投资了一整天,但没有运气!有人可以帮我吗?
javascript - 使用 JSON.parse reviver 混淆字段
我正在尝试使用 JSON.parse 滥用 reviver 函数。
我基本上想让某些字段为“null”。
如果我这样做:
整个 json_data 对象最终为空。事实上,不管我做什么,它定义了 json_object 的值。
有趣的是,这按预期工作:
属性“name”现在的值为“name”。
有问题的JSON:
更新
我刚刚意识到与我想做的相反的事情也有效,所以我可以取消 name 字段:
javascript - JSON.parse reviver 函数有 n+1 个键?
我想测试在解析 JSON 字符串时可以提供 reviver 函数的代码重载。
所以这段代码:
产量10
(好的)。
但后来我问自己,“这是什么if (k === "")
东西?” 让我们删除它!:
也许是因为 5 是一个整数?让我们尝试parseInt
:
很奇怪...
所以我想看看是哪些键(虽然这里只有一个)造成了麻烦:
有 2 个警报:
5
[object Object]
恕我直言k
andv
用于key
and value
,实际上这里只有一个键。
这个其他警报是什么?为什么我必须检查if (k === "")
?
ajax - 为什么即使实例不为空,WCF AJAX 方法的参数也不会填充值?
我使用 jQuery.ajax 向我的服务器发送了一个 AJAX 请求,并且“数据”字段填充了与我的 ClientMessage 类型相对应的 JSON 字符串,但数据没有进入方法的主要参数。当方法在我调试时运行时,在 ProcessRequest 的数据参数中,ClientMessage 的所有成员都为空。
ClientMessage 类的成员是简单的自动实现的 get/set 字符串属性,使用 DataMember(Name="membername") 属性以及类本身的 DataContract 属性进行修饰。在客户端,Chrome 的开发人员工具显示 AJAX 请求的数据对象是有效的 JSON,我可以在请求查看器中展开它以验证正确的对象和正在发送的成员。
我只是无法弄清楚为什么 ClientMessage 数据实例的所有成员都带有空值(顺便说一句,它们都是简单的字符串)。
javascript - 如何使用 Immutable.js 从 javascript 原始对象创建记录映射?
我是 immutable.js 的新手,我想更好地了解如何使用从原始 JS 对象开始的记录。
我Immutable.fromJS()
可以创建一个传递原始对象的地图,例如:
imagesMap
现在是一个包含其他地图的地图,每个图像一个。
我想创建一个包含记录的地图,例如使用Image
定义为的记录:
我怎样才能拥有s 的imagesMap
地图ImageRecord
?我可以做些什么,将复兴者传递给fromJS
,还是应该采用“旧”方法?
javascript - node.js JSON.parse reviver 不报告重复键?
我正在尝试使用一个 JSON 解析器来检测和保存重复的键。我在 node.js 中使用 JSON.parse() 和一个 reviver,我希望当我得到一个重复的密钥时会告诉我。然而事实并非如此。还有其他方法吗?是否有更好的 JSON 解析器来处理 reviver 或其他参数中的重复键?
输出是:
javascript - JSON.parse Reviver 函数中的意外行为,删除对象而不是关键属性
JSBin 链接让你可以快速运行代码。
问题出在评论中,但是从文档中关于复活者(这个名字很糟糕)的工作方式来看,如果你不返回值或者如果你返回undefined
,那么应该从对象中删除该属性。如果您返回未转换的值,它保持不变。
然而,当我对其进行测试时,看起来整个对象都被移除了。第一个例子工作得很好,偶数转换为负数,奇数不变。
但在第二个例子中,我什至没有得到一个对象,只是未定义。那么我是误读了文档还是有其他问题?
在第二个示例中,结果只是未定义。
javascript - JSON reviver 函数返回 undefined 即使返回
我已经阅读了其他类似的问题并尝试了他们在做什么,但我仍然不明白。为什么它返回 undefined ?
这里有问题的 JSON 是:
javascript - JSON.parse reviver 函数嵌套对象
我的目标是JSON.parse
用可选参数告诉函数,如果传递给函数的字符串有一个名为执行该表达式内部操作的键,然后继续向外工作以对字符串的其余部分进行操作reviver argument
,我希望它.calc(string)
"expr"
每次我运行这个我都会得到NaN
。
如果我注释掉calc(string)
之前的最后两个调用,console.log(initNumber)
则程序按预期运行。
因此,如果键是"expr"
并且嵌套"op"
键的值是"add"
然后对该嵌套对象执行 add() 函数。如果"op"
key 是"subtract"
.
非常感谢任何帮助。