- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
拿这个对象:
x = {
"key1": "xxx",
"key2": function(){return this.key1}
}
如果我这样做:
y = JSON.parse( JSON.stringify(x) );
然后 y 将返回 { "key1": "xxx"}
。有什么可以通过 stringify 传递函数的吗?使用“ye goode olde eval()”可以创建带有附加函数的对象,但是打包它有什么用呢?
最佳答案
json-stringify-function是与此类似的帖子。
通过该帖子发现的片段可能对遇到此答案的任何人都有用。它通过使用 replacer 来工作JSON.stringify 和 reviver 中的参数JSON.parse 中的参数。
更具体地说,当一个值恰好是函数类型时,.toString()
会通过 replacer
调用它。当需要解析时,当函数以字符串形式存在时,eval()
将通过 reviver
执行。
var JSONfn;
if (!JSONfn) {
JSONfn = {};
}
(function () {
JSONfn.stringify = function(obj) {
return JSON.stringify(obj,function(key, value){
return (typeof value === 'function' ) ? value.toString() : value;
});
}
JSONfn.parse = function(str) {
return JSON.parse(str,function(key, value){
if(typeof value != 'string') return value;
return ( value.substring(0,8) == 'function') ? eval('('+value+')') : value;
});
}
}());
关于javascript - 有没有可能让 JSON.stringify 保留功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40249605/
我从 https://github.com/douglascrockford/JSON-js/blob/master/json2.js 下载了 JSON2.js并且它没有 JSON2.stringif
我制作了一个 Stringify 协议(protocol),将实现该协议(protocol)的类型转换为字符串。 protocol Stringify { func stringify() -
在我的Reaction Native 0.70应用程序中有一些不可序列化的东西,它在上下文API中传递,以使它们可用于以下组件。以下是它的代码:。在可能需要检索不可序列化值的组件中:。但是,它在组件中
MISRA 标准不允许在宏定义中使用字符串化运算符在不使用 # 运算符的情况下实现相同概念的替代方法是什么? 最佳答案 实际上并没有任何直接的替代方案——只有变通办法。此建议规则与建议不要使用类似函数
MISRA 标准不允许在宏定义中使用字符串化运算符在不使用 # 运算符的情况下实现相同概念的替代方法是什么? 最佳答案 实际上并没有任何直接的替代方案——只有变通办法。此建议规则与建议不要使用类似函数
前言 JSON是一种轻量级数据格式,可以方便地表示复杂数据结构。JSON对象有两个方法:stringify()和parse()。在简单的情况下,这两个方法分别可以将JavaScript序列化
...使用 JSON2.js 和 JQUERY 正如您从第一张图片中看到的,对象属性 customerReport.Title 有撇号。在代码中你可以看到我正在调用 JSON.stringify()
我目前正在调查为什么 JSON.stringify() 没有正确解析我的对象。这是我试图解析为 JSON 字符串的对象: var data = [{ name: string, act
问题 大家好,有人可以帮我解决这个复杂的问题吗? :我正在使用 Spring boot v2.0.5 和 React.js v15.6.2、ReactDom v15.6.2、React Bootstr
我正在使用 Knockout.js 和 ASP.NET web ApiController 完成一个新项目。我看到的许多示例在将数据发布到服务器之前执行一些手动 JSON 序列化。此外,请求内容类型同
此宏在调用时编译: macro_rules! remote_optional { ($remote:ident with=$def:ident $def_str:expr) => {
我有一个返回对象,需要打印一些属性,但 JSON.stringify 无法识别一些属性。 例如: Object = {"Date":"Mon, 22 Jun 2015 10:56:50 GMT","C
JSON.stringify( ) 是否等同于序列化或有效序列化,或者它只是实现的必要步骤序列化? 换句话说,JSON.stringify( ) 是否足够但不需要序列化?还是必要但不充分?还是 Jav
JSON.stringify是我们经常用到的的一个方法,它主要作用是将 JavaScript 值和对象转换为字符串。如: JSON.stringify({ foo: "bar&
GCC 似乎总是在源代码中用空格扩展制表符。它保留表达式内部的空间。标准对此有何规定? 例如,c 会是什么?此示例中包含( 表示源代码文件中的乱码 \t 字符)。 #define X(a) #a co
根据this答案,JSON.parse() 的时间复杂度是 O(n) . 这是否适用于 JSON.stringify() ?似乎没有任何地方记录这一点。 最佳答案 它应该是 O(n),但是 n是被字符
connection.query( 'SELECT DeskName FROM desks WHERE stat = ?',["Booked"], function(err, rows){ if(
我们正在根据一种简单的模板格式构建动态 JSON 有效负载,该格式指示我们的有效负载应产生多少级别,例如"level1.level2"> 将产生: { "level1": [ {
我对 Node.js 和传递 JSON 数据相当陌生,但是有人可以让我深入了解为什么我不需要在其中执行 JSON.stringify 。 module.exports.getBusinessOffer
我有一个简单的 JavaScript 对象,其中包含一些设备信息,包括最后已知的地理位置(仅经度和纬度)。我正在使用 JSON.stringify 将此对象转换为 JSON,但我拥有的一个不是 boo
我是一名优秀的程序员,十分优秀!