Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将嵌套json对象值绑定到表单字段_Javascript_Json - Fatal编程技术网

Javascript 将嵌套json对象值绑定到表单字段

Javascript 将嵌套json对象值绑定到表单字段,javascript,json,Javascript,Json,我正在构建一个动态表单来编辑json对象中的数据。首先,如果存在类似的情况,请告诉我。我宁愿不构建它,但我已经搜索了很多次工具,只找到了需要输入引号的树状结构。我很乐意将所有值都视为字符串。这个编辑功能是为最终用户设计的,所以它需要简单而不是吓人 到目前为止,我有生成嵌套表以表示json对象的代码。对于每个值,我显示一个表单字段。我想将表单字段绑定到相关的嵌套json值。如果我可以存储对json值的引用,我将在json对象树中构建对每个值的引用数组。我还没有找到用javascript实现这一点的

我正在构建一个动态表单来编辑json对象中的数据。首先,如果存在类似的情况,请告诉我。我宁愿不构建它,但我已经搜索了很多次工具,只找到了需要输入引号的树状结构。我很乐意将所有值都视为字符串。这个编辑功能是为最终用户设计的,所以它需要简单而不是吓人

到目前为止,我有生成嵌套表以表示json对象的代码。对于每个值,我显示一个表单字段。我想将表单字段绑定到相关的嵌套json值。如果我可以存储对json值的引用,我将在json对象树中构建对每个值的引用数组。我还没有找到用javascript实现这一点的方法

我最后的方法是在编辑后遍历表。我宁愿有动态更新,但一次提交总比没有好

有什么想法吗

// the json in files nests only a few levels. Here is the format of a simple case,
{
 "researcherid_id":{
  "id_key":"researcherid_id",
  "description":"Use to retrieve bibliometric data",
  "url_template" :[
    {
      "name": "Author Detail",
      "url": "http://www.researcherid.com/rid/${key}"
    }
  ]         
 }
}

$.get('file.json',make_json_form);

function make_json_form(response) {

   dataset = $.secureEvalJSON(response);
   // iterate through the object and generate form field for string values.

}

// Then after the form is edited I want to display the raw updated json (then I want to save it but that is for another thread)

// now I iterate through the form and construct the json object
// I would rather have the dataset object var updated on focus out after each edit.

function show_json(form_id){
 var r = {};
 var el = document.getElementById(form_id);
 table_to_json(r,el,null);
 $('body').html(formattedJSON(r));
}

更简单的方法是接受表单提交并以JSON格式输出数据。这样,就不需要绑定变量。

解决方案已经到来。JQuery现在有用于数据绑定和模板的插件

http://api.jquery.com/jQuery.template/

还有另一个简单的模板引擎,可以将JSON数据直接加载到表单中。请参阅插件。它的工作方式与Jack放在这里的类似,但它使用纯HTML作为模板


您可以在上看到如何使用它的说明,并在上看到实例。

那么您想基于对象生成表单并将表单字段绑定到对象属性?对象结构是什么样子的?JSON只是一个字符串表示,您会发现只处理Javascript对象更容易,并在需要时在最后序列化为JSON。