2010-05-13 15 views
5

Estoy creando una forma dinámica para editar datos en un objeto json. Primero, si algo como esto existe, házmelo saber. Preferiría no construirlo, pero he buscado muchas veces una herramienta y he encontrado solo estructuras tipo árbol que requieren ingresar comillas. Me encantaría tratar todos los valores como cadenas. Esta funcionalidad de edición es para usuarios finales, por lo que debe ser fácil y no intimidante.vinculando valor de objeto json anidado a un campo de formulario

Hasta ahora tengo un código que genera tablas anidadas para representar un objeto json. Para cada valor, muestro un campo de formulario. Me gustaría vincular el campo de formulario al valor json anidado asociado. Si pudiera almacenar una referencia al valor json, construiría una matriz de referencias para cada valor en un árbol de objetos json. No he encontrado una manera de hacer eso con javascript.

Mi enfoque de último recurso será atravesar la mesa una vez que se hayan realizado las modificaciones. Preferiría tener actualizaciones dinámicas, pero un solo envío sería mejor que nada.

¿Alguna idea?

// 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)); 
} 
+2

por lo que desea generar un formulario basado en el objeto y vincular los campos del formulario a las propiedades del objeto? ¿cómo se ve la estructura del objeto? JSON es solo una representación de cadena, y le resultará más sencillo tratar con objetos de Javascript y serializarlo a JSON al final cuando sea necesario. – Anurag

Respuesta

0

Un enfoque mucho más simple sería aceptar un envío de formulario y enviar los datos en formato JSON. De esta forma, no hay necesidad de vincular variables.