Me estoy poniendo un JSON Array de objetos que desde un servlet y tratando de llenar en una tabla de control en java script.

Aquí está mi código, por alguna razón es poner comillas al principio y al Final, que no es aceptada por la Mesa de control para rellenar los valores. ¿cómo puedo eliminar este comillas al principio y al Final.

 aData = [{"A":"one","B":"Two","C":"Three","D":"8","E":"No","F":"Business","G":"0",
"L1H":"Analytics"},{"A":"ones","B":"Twos","C":"Threes","D":"85","E":"Nos",
"F":"BusinessD","G":"0","L1H":"AnalyticsM"}]
var oModel = new sap.ui.model.json.JSONModel();
oModel.setData({modelData: aData});
var oTable=sap.ui.getCore().byId("id1");
oTable.setModel(oModel);
oTable.bindRows("/modelData"); //This static code of aData is working fine in
//my Table   control of HTMl page.
//Here, i Wanted to get values dynamically from servlet and populate it in Table.
var global;
$.get('someServlet', function(data) { 
var abc, xyz;
for(var i=0;i<(data.length);i++){
abc='{'+'\"A\":'+'\"'+data[i].A+'\"'+','+'\"B":'+'\"'+data[i].B+'\"'+',
'+'\"C\":'+'\"'+data[i].C+'\"'+','+'\"D\":'+'\"'+data[i].D+'\"'+',
'+'\"E\":'+'\"'+data[i].E+'\"'+','+'\"F\":'+'\"'+data[i].F+'\"'+',
'+'\"G\":'+'\"'+data[i].G+'\"'+','+'\"H\":'+'\"'+data[i].H+'\"}';   
if (xyz===undefined)
xyz=abc;
else                
xyz=abc+','+xyz;
global = xyz;
}
global="["+global+"]";
var oModel = new sap.ui.model.json.JSONModel();
oModel.setData({modelData: global});
var oTable=sap.ui.getCore().byId("id1");
oTable.setModel(oModel);
oTable.bindRows("/modelData");
});
//global="[{"A":"one","B":"Two","C":"Three"}...]"
//alert(global);  Displaying without double quotes as expected.
//when I see the value in Chrome debugger double quotes are appearing at begin&End

Así que Finalmente me tienen valor en la variable global, con comillas dobles.

//global="[{"A":"one","B":"Two","C":"Three","D":"8","E":"No","F":"Business","G":"0","L1H":"Analytics"},

{«A»:»ones»,»B»:»Twos»,»C»:»Threes»,»D»:»85″,»E»:»Nos»,»F»:»BusinessD»,»G»:»0″,»L1H»:»AnalyticsM»}]»

¿cómo puedo deshacerme de este comillas al principio y al final de este conjunto de resultados JSONArray Objetos? Si me pongo Alerta, es mostrar sin las Comillas. cuando veo esta variable global en Chrome depurador, se está mostrando con comillas Dobles y no para rellenar los valores en la Tabla de control. Estoy teniendo poco tiempo duro con mi código en rellenar los valores en la Tabla de control que viene de Servlet en formato JSON/Cadena/de la Matriz. Por favor, ayudar.

Apreciar de cualquier entrada y ayuda.

  • Así que parece que el ajax devuelve json, pero usted está tratando de despojar a todos, excepto a tres propiedades, por lo que estamos haciendo manual de cadena json edificio, y tratando de que pase a una función? Es ese derecho?
  • wow. no me di cuenta de que lo que estaba haciendo. que tonto.
  • Usted puede utilizar stringify para convertir el json a la cadena.
InformationsquelleAutor user2682165 | 2013-08-28

6 Comentarios

  1. 3

    Podría llamar JSON.analizar para analizar su cadena en un objeto en el final, que es:

    global=JSON.parse("["+global+"]");

    Pero en lugar de construir usted mismo una cadena de JSON sobre la marcha y, a continuación, el análisis se puede ser más fáciles de instalar var global = []; y en su bucle para hacer:

    global.push({ 
    Deals: data[i].Deals, 
    L1H: data[i].L1H, 
    L2H: data[i].L2H 
    });

    Has probado el siguiente?

    $.get('someServlet', function(data) { 
    var oModel = new sap.ui.model.json.JSONModel();
    oModel.setData({modelData: data});
    var oTable=sap.ui.getCore().byId("id1");
    oTable.setModel(oModel);
    oTable.bindRows("/modelData");
    });
    • Esto es lo que tengo en el método doGet de servlet respuesta.getWriter().de impresión(jsonArray); cuando hago un alert(datos), obteniendo como [objeto],[objeto],[object, Objeto
    • A la derecha, porque los datos es una matriz de objetos, que debe ser suficiente para llenar la tabla de control (dependiendo de cómo o de qué estás usando para ello). Si desea que la representación textual de los datos, usted puede hacer alert(JSON.stringify(data));, pero si ninguna de nuestras respuestas han ayudado, sin embargo, entonces podemos ser malentendido, el problema que tienes.
    • Ok. Lo siento por hacer que la confusión. Permítanme poner en forma diferente.
    • este mundial=JSON.parse(«[«+global+»]»); no funciona
    • Estoy recibiendo un error en este tipo de formato, tales como Uncaught TypeError: No se puede llamar método de ‘empuje’ undefined
    • Sí, lo probé de nuevo ahora, y afortunadamente se está trabajando.

  2. 2

    No construir o analizar json a ti mismo. Hay métodos disponibles para hacerlo para usted.

    Si su devuelve json sólo tiene un array de objetos con las tres propiedades Deals, L1H, y L2H, entonces data es lo que quieres. Si la devuelve json tiene más propiedades, y desea que sólo los tres, hacen de este lugar:

    function(data) {
    var arr = $.map(data, function(item, idx) {
    return {
    Data: item.Data,
    L1H: item.L1H,
    L2H: item.L2H
    };
    });
    }
    • Gracias por todas las respuestas. La verdad es que estoy pasando Base de datos del conjunto de resultados en JSON formato de Matriz a un servlet. esta es la Matriz JSON que estoy pasando a un servlet.[{«A»:»uno»,»B»:»Dos»,»C»:»Tres»,»D»:»8″,»E»:»No»,»F»:»Negocio»,»G»:»0″,»L1H»:»Analytics»}, {«AB»:»uno»,»BC»:»Dos»,»CD»:»Tres»,»DF»:»8″,»Por ejemplo»:»No»,»FZ»:»Negocio»,»GM»:»0″,»L1H»:»Analytics»} ] . esto significa que el número de filas que se devuelven de JDBC programa.
    • Si yo no analizar por mí mismo en el código, a continuación, obtener un error.
    • Me volvió a hablar a mi pregunta de otra manera. ¿podría alguien por favor, eche un vistazo a mi preocupación de nuevo?
  3. 1

    Su global variable es una cadena JSON. Usted no necesita para construir una cadena. Como lo que yo puedo decir, data ya es un objeto de JavaScript. Yo creo que esto es lo que usted desea:

    var global;    
    $.get('someServlet', function(data) {
    global = data;
    populateTable(global);  //You could just as easily pass the data variable here
    });
    • Soy capaz de rellenar la tabla con los datos estáticos, tales como global=[{«A»:»uno»,»B»:»Dos»,»C»:»Tres»,»D»:»8″,»E»:»No»,»F»:»Negocio»,»G»:»0″,»L1H»:»Analytics»}, {«AB»:»uno»,»BC»:»Dos»,»CD»:»Tres»,»DF»:»8″,»EJEMPLO»:»No»,»FZ»:»Negocio»,»GM»:»0″,»L1H»:»Analytics»} ] cuando llego a los valores de esta variable global a partir de los datos, es failling. ¿cómo puedo lograr esto?
    • En mi ejemplo anterior, usted debe ser capaz de llamar a la función para llenar la mesa inmediatamente después de establecer la variable global. He editado mi ejemplo para mostrar lo que quiero decir.
    • esto está fallando. cuando me asignar global directamente a la Mesa de control, recibiendo un error. cuando me gusta de este mundial = [{«A»:»one»,»B»:»Two»,»C»:»Three»,»D»:»8″,»E»:»No»,»F»:»Business»,»G»:»0″,»L1H»:»Analytics»},{«AB»:»one»,»BC»:»Two»,»CD»:»Three»,»DF»:»8″,»EG»:»No»,»FZ»:»Business»,»GM»:»0″,»L1H»:»Analytics»}]; Rellenar(global), se está trabajando
    • Por favor poner console.log(data); dentro de los $.obtener la función de devolución de llamada. Lo que hace es mostrar en la consola?
    • [objeto],[objeto],[objeto],[objeto],[objeto],[objeto]….
  4. 0

    Probar con este:

    var myJSON = eval( data );

    donde los datos es la cadena que la servelt ha enviado. Función Eval hace el trabajo, analizar una cadena JSON.

  5. -1

    La forma correcta de eliminar las comillas es con

    var obJason = eval( dataString );
    var obj= "[{"ID":"786-000X-XX8","NAME":"LISANDRO ARCILES"}]";

    aplicado la función eval()

    obj= eval( obj);

    lo tranforma al obejeto deseado de tipo Json

    • Por favor, puesto que sólo en inglés

Dejar respuesta

Please enter your comment!
Please enter your name here