Cómo almacenar datos en JSON como una base de datos,
de modo que cuando un usuario se registra la información debe ser almacenada en una variable?

Ejemplo:

Mi formulario HTML se compone de campos de entrada de texto nombre, apellidos. Hacer clic en el botón de registro de la forma debe almacenar los valores de nombre y apellidos en una de las variables.

¿Cómo puedo hacer esto:

 var txt = '{"employees":[' +
   '{"firstName":"John","lastName":"Doe" },' +
    '{"firstName":"Anna","lastName":"Smith" },' +
     '{"firstName":"Peter","lastName":"Jones" }]}';
  • usted puede utilizar var json = JSON.parse(txt)
  • Creo que el OP está pidiendo la otra dirección
  • Hay una razón que usted desea utilizar JSON? Usted no puede realmente el proceso es aún más, ya que es sólo de texto. Un simple objeto o array sería más apropiado.
  • yo no tengo mucho conocimiento en JSON puede usted por favor decirme una buena fuente para que @ArunPJohny

4 Comentarios

  1. 0

    Fácil de usar Jquery

    var jsonArray;
    jsonArray.push($("#firstname").val();
    jsonArray.push($("#lastname").val();
    var myJsonString = JSON.stringify(jsonArray);
    • La única parte que es jQuery es $("...").val(). De lo contrario, el código está lleno de errores de sintaxis, errores de tiempo de ejecución y los usos confundir los nombres de las variables (como jsonArray). Si desea inicializar jsonArray correctamente, entonces se podría contener una normal JS matriz, no JSON.
    • Mirando esta solución, de nuevo, casi dos años más tarde, estoy de acuerdo con Felix: no va a funcionar. La primera línea debe ser de al menos var jsonArray=[]; para ser coherente con el resto. Pero incluso entonces todos los nombres que se encuentra (nombre y apellidos iguales) serán lanzados juntos en esta matriz simple. Los campos de entrada podría no ser encontrados incluso si su id atributos no mantienen los mismos valores que sus name atributos. OP sólo se menciona el name atributos.
  2. 2

    Suena a que quieres ir de valores en HTML a un JSON cadena. Suponiendo <form> se parece a esto

    <form>
        <input type="text" name="nm1[]"/><input type="text" name="nm2[]"/>
        <input type="text" name="nm1[]"/><input type="text" name="nm2[]"/>
    </form>

    Puede utilizar getElementsByName dos veces, construir un Objeto y JSON.stringify se

    var nm1 = document.getElementsByName('nm1[]'),
        nm2 = document.getElementsByName('nm2[]'),
        i, o = {
            employees: []
        };
    for (i = 0; i < nm1.length; ++i) {
        if (nm1[i].value && nm2[i].value)
            o.employees.push({
                firstName: nm1[i].value,
                lastName: nm2[i].value
            });
    }
    JSON.stringify(o);

    DEMO (consola abierta)

  3. 1

    Puede añadir datos a la estructura de datos actual añadiéndolos a la employees matriz como

    dataobj.employees.push({"firstName":$('input[name=firstn]').val(),
                            "lastName":$('input[name=lastn]').val() });

    Por supuesto, esto requiere que el JSON que se analiza en los dataobj en el primer lugar. Debe ser serializada de nuevo, si usted desea enviar por GET. Pero puede ser POSTed directamente como un objeto de datos!

    Supuesto, usted puede también comenzar con una matriz vacía, la inicialización de dataobj como

    var dataobj={ employee: [] };

    antes de la uptdating comando entra en acción.

    Un muy tarde editar …

    Sólo en caso de que hubiera varios nombre /apellido campos de entrada, a continuación, el siguiente va a hacer un «mejor trabajo» (como se le de un vistazo a todos los campos y recoger sólo aquellas en las que al menos uno de los nombres que se establece):

    JS:

    var dataobj={employees:[]};
    function shw(){
      $('#out').text(JSON.stringify(dataobj).replace(/{/g,'\n{'));}
    $(function(){
      $('#clr').click(function(){dataobj.employees=[];shw()});
      $('#go').click(function(){
       var ln=$('input[name=lastn]').toArray();     //ln: JS-Array of DOM elements
       $('input[name=firstn]').each(function(i,fn){ //for each fn DOM-element ...
        var f=fn.value,l=ln[i].value;               //get values as strings
        if (f+l>'') dataobj.employees.push({firstName:f,lastName:l}); //push name object
       });shw();})
      shw();
    });

    HTML:

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <input type="text" name="firstn" value="John"><input type="text" name="lastn" value="Doe"><br>
    <input type="text" name="firstn" value="Anna"><input type="text" name="lastn" value="Smith"><br>
    <input type="text" name="firstn" value="Peter"><input type="text" name="lastn" value="Jones">
    <input type="button" id="go" value="append names">
    <input type="button" id="clr" value="clear">
    <pre id="out"></pre>

  4. 0

    Puede utilizar el push método de la matriz de inserción de datos JSON. Esto se muestra aquí – anexando-a-un-json-objeto. Antes de que los datos deben ser presentados (digo process.php), stringify ella.

    • El OP no tiene una matriz, que tiene el texto.
    • Muchas gracias por señalar 😉

Dejar respuesta

Please enter your comment!
Please enter your name here