如何使用分层JSON数据填充表单

时间:2012-12-06 22:22:02

标签: json forms

我有一个表格需要填充JSON数据。表单包含需要填充的select,textarea和input元素。 JSON数据是复杂/分层的(即许多嵌套对象)。

我知道http://www.keyframesandcode.com/code/development/javascript/jquery-populate-plugin/但它使用方括号表示法映射到字段名称(例如

<input name="person[name][last]" ...

我需要使用点符号(例如

<input name="person.name.last" ...

我正在使用jQuery,所以jQuery解决方案很好。感谢。

1 个答案:

答案 0 :(得分:1)

这是使用递归函数填充的一个被黑客攻击的替代方法:

function populator(json, nodes){
  $.each(json, function(key, value){
    newNodes = nodes ? nodes.slice() : [];
    newNodes.push(key);

    if (typeof(value)=="object") {
        populator(value, newNodes);
    else
        $('name["' + newNodes.join('.') + '"]').val(value);
    }
  });
}

你可以这样做:

populator({
             person: {
                name: {
                   last: 'Doe', 
                   first: 'John'
                },
                address: {
                   street: '123 Main Street',
                   city: 'Montgomery',
                   state: 'AL'
             }
          });