【问题标题】:Defining recrussive JSON Object notation定义递归 JSON 对象表示法
【发布时间】:2009-09-09 13:51:40
【问题描述】:

下面的 JSON 对象定义有什么问题

我正在尝试创建一个新的 JSON 对象,如下所示。 所以我的想法是访问 COMPANYSETUP.HourSetup.initiate();

不确定错误?

COMPANYSETUP = {            
                    initiated : false,          
                     companyId : "",

            initiate : function() {
                if(!initiated){
                    // TO DO
                    initiated = true;
                }           },

            HourSetup = {
                initiated : false,
                    hourId : "",

                    initiate : function() {
                       if(!initiated){
                          // TO DO
                         initiated = true;
                        }
                   }

            }

        };

【问题讨论】:

  • 我认为您将 JSON 与 JavaScript 对象混淆了。您的示例是 not JSON。我看起来你想在这里创建某种模块。
  • 这就是你的代码在换行方面的实际格式吗?如果是这样,第 3 行和第 7 行的 cmets 将注释掉该行的其余部分,这将导致语法错误。
  • 我试图修复代码块和奇怪的缩进。如果这是它应该的样子,还有一个语法错误,其中 HourSetup={} 应该是 HourSetup: {}。编辑:好的,奇怪的缩进又回来了;-)

标签: json


【解决方案1】:

假设你想要一个 javascript 对象而不是 JSON,它不允许函数,

小时设置 =

应改为:

小时设置:

此外,正如 JonoW 指出的那样,您的单行 cmets 包含您的一些代码,因为代码在帖子中已格式化。

【讨论】:

    【解决方案2】:

    有一个不应该出现的“=”。改成“:”

    【讨论】:

      【解决方案3】:

      JSON 是一种为了安全而刻意限制的 JavaScript 形式。它不能包含危险的代码元素,如函数表达式。

      在普通的 eval()ed JavaScript 中应该可以正常工作,但它不是 JSON。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-05-26
        • 2014-11-08
        • 1970-01-01
        • 2013-12-02
        • 2017-03-26
        • 2019-09-03
        • 2016-10-17
        • 2015-06-04
        相关资源
        最近更新 更多