0

我想像这样在 Javascript 中创建一个动态 JSON 数组:

var jsonData = {
    "Tasks" : [
        {
            "__metadata" : {
                "uri" : "...",
                "type" : "..."
            },
            "ID" : "...",
            "Category" : "..",
            // ...
        },
        {
            "__metadata" : {
                "uri" : "...",
                "type" : "..."
            },
            "ID" : "...",
            "Category" : "..",
            // ...
        },
        // others tasks
    ], "__count" : "2"
};

我发现了如何在 Javascript 中创建 JSON,但不是使用这种语法。那么用“Tasks”数组创建 JSON 对象并在其中添加项目的好方法是什么?

谢谢您的帮助

4

3 回答 3

1

可能是这样的?

function Metadata(uri,type)
{
    this.uri = uri;
    this.type = type;
}

function Task(metadata, id, category)
{
    this.__metadata = metadata;
    this.ID = id;
    this.Category = category;
}

var tasks = [new Task(new Metadata('foo','bar'), 1, 'blah'), new Task(new Metadata('foo1', 'bar1'), 2, 'blah2')];

document.write(JSON.stringify({"Tasks": tasks, "__count": tasks.length}));
于 2013-03-11T10:03:23.003 回答
1

使用构造函数创建对象并使用 JSON api。

var jsonData = {};
jsonData.Tasks = new Array();

var Metadata = function(uri, type){
  this.uri = uri;
  this.type = type;
}

var Task = function (metadata, id, category){
  this.__metadata = metadata;
  this.ID = id;
  this.Category = category;
}

var tasks = jsonData.Tasks;

tasks.push(
  new Task(
    new Metadata("someUri", "someType"),
    1,
    "someCategory")
);

jsbin:工作示例

于 2013-03-11T10:07:16.623 回答
0

我正在使用此代码并且它有效:

var jsonData = {};
jsonData.Tasks = [];

var count = 0;

for(...) {
    jsonData.Tasks.push({
        "__metadata" : {
            "uri" : "...",
            "type" : "..."
        },
        "ID" : "...",
        "Category" : "...",
    });

    count++;
}

jsonData.__count = count;

感谢您的回答和反应!

于 2013-03-11T10:12:16.943 回答