Supprimer les Guillemets au Début & Fin de Objet JSON/String ou Java script Variable?
J'obtiens un Tableau JSON d'objets à partir de servlet et d'essayer de remplir un tableau de contrôle en java script.
Voici mon code, pour une raison quelconque, il est en train de mettre des guillemets au début et à la Fin, qui n'est pas acceptée par le Tableau de contrôle du remplissage de valeurs. comment puis-je supprimer cette double guillemets au début et à la Fin.
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
Donc Finalement j'ai de la valeur dans la variable globale est, avec des guillemets doubles.
//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"}]"
comment puis-je me débarrasser de cette double guillemets au début et à la fin de ce resultSet JSONArray Objets? Si je mets de l'Alerte, c'est l'affichage sans Guillemets. quand je vois cette variable globale dans Chrome débogueur, elle se montre avec des guillemets, et à défaut de remplir les valeurs dans le Tableau de contrôle. Je vais avoir peu de temps avec mon code à remplir des valeurs dans la Table de contrôle qui sont à venir à partir de Servlet dans un format JSON/String/Array. S'il vous plaît aider.
En apprécier toute entrée et de l'aide.
wow. je ne savais pas qu'est ce qu'il faisait. c'est idiot.
Vous pouvez utiliser stringify convertir au format json à la chaîne.
OriginalL'auteur user2682165 | 2013-08-28
Vous devez vous connecter pour publier un commentaire.
On pourrait appeler JSON.analyser pour analyser votre chaîne de caractères dans un objet à la fin, c'est:
Mais au lieu de construire vous-même une chaîne JSON à la volée, puis de l'analyser, il n'est peut-être plus simple de définir
var global = [];
et dans ta boucle for n':Avez-vous essayé le suivant?
Droit, parce que les données est un tableau d'objets, ce qui devrait être suffisant pour remplir le tableau (en fonction de comment ou ce que vous utilisez pour le faire). Si vous voulez la représentation textuelle des données, il vous suffit de faire
alert(JSON.stringify(data));
, mais si aucun de nos réponses vous ont aidé à vous encore, alors peut-être l'incompréhension du problème que vous rencontrez.Ok. Je suis désolé pour la confusion. Permettez-moi de présenter de manière différente.
ce global=JSON.parse("["+mondiale+"]"); ne fonctionne pas
J'obtiens une erreur dans ce type de format comme Uncaught TypeError: Impossible d'appeler la méthode "push" undefined
OriginalL'auteur sgbj
De ne pas construire ou parser json vous-même. Il existe des méthodes disponibles pour le faire pour vous.
Si votre retour json, n'a qu'un tableau d'objets avec les trois propriétés
Deals
,L1H
, etL2H
, puisdata
est ce que vous voulez. Si le retour json a plus de propriétés, et que vous souhaitez seulement ces trois, faire ceci à la place:Si je n'ai pas analyser par moi-même dans le code, puis d'avoir une erreur.
J'ai réitéré ma question sur les autres. quelqu'un aurait-il merci de prendre un coup d'oeil de mon inquiétude à nouveau?
OriginalL'auteur Jason P
Votre
global
variable est une chaîne JSON. Vous n'avez pas besoin de construire une chaîne. Aussi loin que je peux dire,data
est déjà un objet JavaScript. Je pense que c'est ce que vous voulez:Dans mon exemple ci-dessus, vous devriez juste être capable de faire appel à la fonction à remplir cette table immédiatement après avoir défini la variable globale. J'ai édité mon exemple pour montrer ce que je veux dire.
c'est un échec. quand j'assigne global directement à la Table de contrôle, d'avoir une erreur. quand je fais comme ça global = [{"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"}]; Remplir(global), il est de travail
S'il vous plaît mettre
console.log(data);
à l'intérieur de l' $.obtenir la fonction de rappel. Que faut-il afficher dans la console?[object,object],[object,object],[object,object],[object,object],[object,object],[object,object]....
OriginalL'auteur zigdawgydawg
Puisque vous êtes usig jQuery, essayez http://api.jquery.com/jQuery.parseJSON/ et il vous renverra un objet à la place.
OriginalL'auteur ronnyfm
Essayer avec ceci:
où les données sont de la chaîne de l'servelt a envoyé. Fonction Eval rend le travail, l'analyser en une chaîne de caractères en JSON.
OriginalL'auteur Brian
La forma correcta de eliminar las comillas es con
aplicado la fonction
eval()
lo tranforma al obejeto deseado de tipo Json
OriginalL'auteur Lisandro Arciles