在 JSON 扩展之后,“JFON”会传输函数和数组属性。
JFON 使用 eval 并适用于以下情况:
1)您的数据来自受信任的来源(例如不是来自用户输入或来自您自己的服务器的代码),并且
2)您知道“eval”上下文没有不良副作用
(它是 eval 的上下文在函数“fromJFON”中,第 127 行)
3)重构您的应用程序以使用“无功能”JSON 的成本很高;
4) JFON 是一天的工作,所以可能需要更多的测试;
想法:使用选定的属性名称来逃避函数和数组,例如
在选定字符“ \”时在字符串中进行\ n和\本身。
在 JFON 中,选择名称 "wrap" 来传递函数及其本身: "wrap" : { "fun" : ... 和 "wrap" : { "esc" : ...
演示: http: //landkey.org/Sandbox/z/spaceen86/js/btb/tests/jfon.htm
代码(使用提交 0.0.86):
https
://github.com/lancelab/spaceen/blob/master/js/btb/JFON.js 测试:github.com/lancelab/spaceen/blob/master/js/btb/测试/jfon.htm
这是另一个“JWON”扩展:JSON-comments、here-documents、monkey-patching of JSON:
github.com/lancelab/Boardspirator/blob/master/diary/play/tp/jwon.js