javascript - 如何将此 javascript 转换为 JSON

标签 javascript json

我如何构建我的数据,例如,有一个问题与 5 个选项相关联,并且每个选项都有一个与之相关的投票?如果你把它想象成一棵树,那么问题就是根,它有 5 个叶子,即选择,而每个选择只有一个叶子,即投票。

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

我想这样做的原因是我想在字符串化我的javascript后有一个树状结构。上面的代码来自 JSON.org,我想我想要像“绑定(bind)”这样的结构有 3 个 ircEvents(leaves),我只是不知道如何从向后构建它(从 javascript)谢谢

最佳答案

请参阅下面的更新

如果您已有 JavaScript 对象,请对其使用 JSON.stringify 来获取等效的 JSON 字符串。 Douglas Crockford(JSON 的创始人)在 json2.js 中实现了 JSON.stringify on his github page 。现在越来越多的浏览器内置了它,因为它已经标准化,但许多(很多)浏览器没有,所以现在我们仍然必须使用实用程序脚本(Crockford 的或另一个)。

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

JSON 是 JavaScript 对象文字表示法的子集。所以这个 JavaScript(不是 JSON)对象:

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

看起来完全就像 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 对象本质上是相当自由形式的键/值对集合(例如“ map ”或“字典”)。所以:

// Start with a blank object
var obj = {};

// Add a leaf to it
obj.foo = {};

// Add a leaf under the leaf, with the value 42
obj.foo.subfoo = 42;

// Add a new leave to the root; this one's an array with 1, 2, and 3 in it
obj.bar = [1, 2, 3];

alert(JSON.stringify(obj));
// '{"foo: {"subfoo": 42}, "bar": [1, 2, 3]}'

当然,您可以将其写为字面意思,但我认为您知道:

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

你可能不知道的是,文字右边的东西可以是变量;它们的值将被使用,就像赋值一样。所以这给了我与上面完全相同的 obj:

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

关于javascript - 如何将此 javascript 转换为 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5449470/

相关文章:

javascript - 查找最近的 span 元素并更改 CSS 类

javascript - AngularJS - 在进度条 CSS 期间绘制边框

javascript - 如何使用 JavaScript 在 HTML 数据表中可视化 MySQL 表中超过 1000 行的数据?

java - jackson JSON 库 : how to instantiate a class that contains abstract fields

java - 如何让Gson的fromJson创建对象的arraylilst

javascript - iCheck on() 方法回调不起作用

javascript - 无法在 TouchSwipe jQuery 插件中选择文本

javascript - 如何访问 'this' 控件的 clientID 或者在 jscript 中执行 Bootstrap 的 .popover()

c# - 将 MongoDB Json 转换为 C# 类

json - Swift:如何将 JSON 类型转换为 NSArray?