如何在编码JSON对象时避免使用引号

如何在编码JSON对象时避免使用引号,json,haskell,Json,Haskell,我需要创建类似以下JSON实体的内容: { “foo”:函数(){*some code*} } 任何常见的JSON库(JSON、jsonb、aeron等)都可以轻松实现这一点吗? 我没有找到方法告诉库在编码时不要引用函数部分 谢谢 p、 我理解不允许这种用法的原因是为了强制执行正确的语法,但我愿意冒这个风险。这不是JSON实体,而是JavaScript对象。没有功能的概念 将函数编码为JSON的唯一方法实际上是将其编码为字符串: { "foo": "function() { return \"H

我需要创建类似以下JSON实体的内容:

{
“foo”:函数(){*some code*}
}

任何常见的JSON库(JSON、jsonb、aeron等)都可以轻松实现这一点吗? 我没有找到方法告诉库在编码时不要引用函数部分

谢谢


p、 我理解不允许这种用法的原因是为了强制执行正确的语法,但我愿意冒这个风险。

这不是JSON实体,而是JavaScript对象。没有功能的概念

将函数编码为JSON的唯一方法实际上是将其编码为字符串:

{ "foo": "function() { return \"Hello, World\" }" }
当您想在JavaScript中执行该函数时,必须输入以下字符串:

var jsonObj = JSON.parse('{ "foo": "function() {return \\"Hello, World\\";}" }');
var jfoo = eval('(' + jsonObj.foo + ')');
alert(jfoo()); // Shows a dialog box "Hello, World"

请注意,这允许JSON源在您的网站或应用程序的上下文中执行任意JavaScript。因此,您应该尽可能传输数据而不是函数,并确保不要
评估来自不可信来源的代码。

感谢您的澄清。我是JSON和JS的新手,所以(从你的回答中可以明显看出)我不太清楚两者之间的界线在哪里。尽管如此,由于我正在使用一个JS框架,我需要将这类代码传递给它——是否有一个Haskell包可以很好地处理它?@Uri JSON只能表示数据,JavaScript也可以包含代码。每个haskell JSON包都应该能够处理这个问题。并输出
{“foo”:“function(){return\'Hello,World\“}”}
。如果您对特定的haskell JSON库有疑问(
如何使用haskell RJSON对该字符串进行编码?
),您应该问另一个问题,因为这个问题(尽管有标记)与haskell基本无关。