创建分层JSON对象

时间:2014-12-02 17:22:05

标签: javascript json

我确信这是一个简单的问题,但我找不到任何可以帮助我的信息,而且我已经迷失了一段时间。我正在尝试创建一个JSON对象,这是我到目前为止所拥有的:

var myJsonObject = new Object();
myJsonObject.context.applicationName = appName;
myJsonObject.context.ID = ID;
myJsonObject.context.domain = domain;
myJsonObject.context.production = "no";

myJsonObject.other.name = userName;
myJsonObject.other.date = userDate;

var myString = JSON.stringify(myJsonObject);

这就是我想要的JSON字符串。

{
"context": {
   "applicationName":"example",
   "ID":"exampleID",
   "domain":"someDomain",
   "production","no"
 },
"other": {
   "name":"userName1",
   "date":"userDate1"
 }
}

但是,我一直收到myJsonObject.context is undefined错误。我的意思是,我明白为什么会发生这种情况,我从来没有真正初始化它,但我不知道该怎么做才能纠正这个问题。任何帮助将不胜感激。

我猜测myJsonObject.context必须初始化为另一个对象,然后我只是将它作为一个对象数组添加到原始对象中....这是正确的吗?

4 个答案:

答案 0 :(得分:2)

是的,你需要先将它设置为一个对象,或者你可以在第一行设置它们:

var myJsonObject = {context : {} , other: {} };

答案 1 :(得分:2)

另请注意,您可以使用较短的语法定义对象,如下所示:

var myJsonObject = {
    context: {
        applicationName: appName,
        ID: ID,
        domain: domain,
        production: "no"
    },
    other: {
        name: userName,
        date: userDate
    }
};

答案 2 :(得分:1)

  

我猜测myJsonObject.context必须初始化为另一个对象

  

然后我将它添加到我的原始对象

你通常会同时这样做

  

作为对象数组

没有。那里没有类似阵列的东西。

var myJsonObject = {};
myJsonObject.context = {};
myJsonObject.context.applicationName = appName;

答案 3 :(得分:1)

首先定义myJsonObject.context = {};属性。