从变量值动态填充JSON数组

时间:2018-03-24 22:19:31

标签: javascript jquery json

我有这个我试图修改的JS / Jquery代码:

new MyFormView({
        title: "Original"
        , collection: new MyFormSnippetsCollection([
          { "title" : "Form Name"
            , "fields": {
              "name" : {
                "label"   : "Form Name"
                , "type"  : "input"
                , "value" : "Form Name"
              }
            }
          }
        ])
      })

我希望从变量中插入JSON数据(而不是像上面那样硬编码),那么如何将变量插入" MyFormSnippetsCollection"?

的值

例如,我在字符串中预先格式化了JSON:

var jsondata = '{ "title" : "Form Name"
            , "fields": {
              "name" : {
                "label"   : "Form Name"
                , "type"  : "input"
                , "value" : "Form Name"
              }
            }
          }'

我正在寻找类似的东西(它没有用):

new MyFormView({
        title: "Original"
        , collection: new MyFormSnippetsCollection([
          jsondata
        ])
      })

或者不会那么简单?任何建议表示赞赏。

2 个答案:

答案 0 :(得分:2)

JSON.parse

var jsondata = '{ "title" : "Form Name", "fields": { "name": { "label": "Form Name", "type": "input", "value": "Form Name" } } }';

var json = JSON.parse(jsondata);

document.getElementById("title").innerHTML = json.title;
<div id="title"></div>

答案 1 :(得分:2)

正如您所说,如果jsondata是一个字符串,请注意MyFormSnippetsCollection接受一个数组,其中包含对象作为子项,而不是字符串作为子项。将jsondata转换为对象。

const jsondata = JSON.parse('{ "title" : "Form Name", "fields": {
  "name": {
    "label": "Form Name",
    "type": "input",
    "value": "Form Name"
  }
}
}');
new MyFormView({
  title: "Original",
  collection: new MyFormSnippetsCollection([
    jsondata
  ])
})