如何将此javascript转换为JSON

如何将此javascript转换为JSON,javascript,json,Javascript,Json,我如何构建我的数据,比如说,有一个问题与5个选项关联,每个选项都有一个与其关联的投票?如果你把它想象成一棵树,问题是根有5片叶子,每个选择只有一片叶子,投票 var myJSONObject = {"bindings": [ {"ircEvent": "PRIVMSG", "method": "newURI", "regex": "^http://.*"}, {"ircEvent": "PRIVMSG", "method": "deleteURI", "regex": "^de

我如何构建我的数据,比如说,有一个问题与5个选项关联,每个选项都有一个与其关联的投票?如果你把它想象成一棵树,问题是根有5片叶子,每个选择只有一片叶子,投票

 var myJSONObject = {"bindings": [
    {"ircEvent": "PRIVMSG", "method": "newURI", "regex": "^http://.*"},
    {"ircEvent": "PRIVMSG", "method": "deleteURI", "regex": "^delete.*"},
    {"ircEvent": "PRIVMSG", "method":

我之所以想这样做,是因为我想在我的javascript字符串化之后有一个树结构。上面的一段代码来自JSON.org,我想我想要像“bindings”这样的结构有3个ircEvents(leaves),我只是不知道如何从后向(javascript)构建它谢谢你参见下面的更新

如果您已经有一个JavaScript对象,请在其上使用
JSON.stringify
,以获得等效的JSON字符串。Douglas Crockford(JSON的创始人)在json2.js中实现了
JSON.stringify
。越来越多的浏览器在标准化后内置了它,但很多(很多)浏览器没有,所以现在我们仍然需要使用实用程序脚本(Crockford或其他)

从根本上说,从对象图生成JSON是非常容易的(这是JSON的要点之一,易于生成和使用)

JSON是JavaScript对象文字符号的子集。所以这个JavaScript(不是JSON)对象:

与JSON中的完全相同。如果你想把它放在一个文件中,你可以把它读入内存,或者从服务器或者其他什么地方,这就是你要放的。如果要在JavaScript代码中嵌入一个包含JSON的字符串(这可能是一件奇怪的事情,但是),只需将其用引号括起来:

var aJSONString = '{"bindings": [' +
    '{"ircEvent": "PRIVMSG", "method": "newURI", "regex": "^http://.*"},' +
    '{"ircEvent": "PRIVMSG", "method": "deleteURI", "regex": "^delete.*"}' +
    ']' +
'}';
如果您编写的JavaScript文本在键名周围没有引号,或者使用单引号,那么您必须更改这一点,因为JSON特别要求键名和所有字符串都使用双引号。所以这个JavaScript对象文字:

{foo: 'bar'}
变成

{"foo": "bar"}
在JSON中


更新:下面是您的评论:对不起,我误解了这个问题

用JavaScript构建树结构非常简单。JavaScript对象基本上是键/值对的自由形式集合(例如,“映射”或“字典”)。因此:

当然,你可以把它写成文字,但我想你知道:

var obj = {
    foo: {
        subfoo: 42
    },
    bar: [1, 2, 3]
};
您可能不知道的是,文本右侧的内容可以是变量;它们的值将被使用,就像分配一样。因此,这给了我与上面完全相同的
obj

var fortytwo = 42;
var obj = {
    foo: {
        subfoo: fortytwo
    },
    bar: [1, 2, 3]
};

请参见下面的更新

如果您已经有一个JavaScript对象,请在其上使用
JSON.stringify
,以获得等效的JSON字符串。Douglas Crockford(JSON的创始人)在json2.js中实现了
JSON.stringify
。越来越多的浏览器在标准化后内置了它,但很多(很多)浏览器没有,所以现在我们仍然需要使用实用程序脚本(Crockford或其他)

从根本上说,从对象图生成JSON是非常容易的(这是JSON的要点之一,易于生成和使用)

JSON是JavaScript对象文字符号的子集。所以这个JavaScript(不是JSON)对象:

与JSON中的完全相同。如果你想把它放在一个文件中,你可以把它读入内存,或者从服务器或者其他什么地方,这就是你要放的。如果要在JavaScript代码中嵌入一个包含JSON的字符串(这可能是一件奇怪的事情,但是),只需将其用引号括起来:

var aJSONString = '{"bindings": [' +
    '{"ircEvent": "PRIVMSG", "method": "newURI", "regex": "^http://.*"},' +
    '{"ircEvent": "PRIVMSG", "method": "deleteURI", "regex": "^delete.*"}' +
    ']' +
'}';
如果您编写的JavaScript文本在键名周围没有引号,或者使用单引号,那么您必须更改这一点,因为JSON特别要求键名和所有字符串都使用双引号。所以这个JavaScript对象文字:

{foo: 'bar'}
变成

{"foo": "bar"}
在JSON中


更新:下面是您的评论:对不起,我误解了这个问题

用JavaScript构建树结构非常简单。JavaScript对象基本上是键/值对的自由形式集合(例如,“映射”或“字典”)。因此:

当然,你可以把它写成文字,但我想你知道:

var obj = {
    foo: {
        subfoo: 42
    },
    bar: [1, 2, 3]
};
您可能不知道的是,文本右侧的内容可以是变量;它们的值将被使用,就像分配一样。因此,这给了我与上面完全相同的
obj

var fortytwo = 42;
var obj = {
    foo: {
        subfoo: fortytwo
    },
    bar: [1, 2, 3]
};

使用“eval()”将JSON文本转换为JS对象的最简单方法

但是eval()存在安全问题,因为我们可以编译和执行其中的任何javascript代码。因此,建议使用“parse”将JSON文本转换为JS对象

var obj = JSON.parse(myJSONtext);
要将JS对象转换为JSON文本,请使用stringify

var myJSONText = JSON.stringify(obj);

请参阅此处了解更多详细信息

使用“eval()”将JSON文本转换为JS对象的最简单方法

但是eval()存在安全问题,因为我们可以编译和执行其中的任何javascript代码。因此,建议使用“parse”将JSON文本转换为JS对象

var obj = JSON.parse(myJSONtext);
要将JS对象转换为JSON文本,请使用stringify

var myJSONText = JSON.stringify(obj);

请参阅此处了解更多详细信息

嗯,我没有,也不知道如何构建树型数据。@Clinteney Hui:我想我误解了这个问题。我已经添加了一个可能有用的更新。天哪,谢谢你这么做,这需要很长时间。。。我真的很感激。实际上,我尝试了你非常简单的方法来构建树结构,但遇到了一个我不知道为什么的问题,SurveyJson.question=“你好”,SurveyJson.question.answer=hi,但是在我把它字符串化之后,唯一显示的部分是{“问题”:“你好”},问题的叶子,hi,没有出现。感谢您您所做的是将名为
answer
的属性添加到
String
实例中。尽管可以使用JavaScript实现这一点,但内置类型(如
String
Array
上的自定义属性将丢失。您希望有一个对象包含
问题
答案
,比如