Monday, June 3, 2024
 Popular · Latest · Hot · Upcoming
141
rated 0 times [  143] [ 2]  / answers: 1 / hits: 22941  / 11 Years ago, wed, august 28, 2013, 12:00:00

I'm getting a JSON Array of objects from servlet and trying to populate in a table control in java script.



Here is my code, for some reason it is putting double quotes at the beginning and End, which is not accepted by Table control for populating values. how can I remove this double quotes at beginning and End.



 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


So Finally I have value in global variable is, with double quotes.



//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}]



how can I get rid of this double quotes at beginning and end of this resultSet JSONArray Objects? If I put Alert, it is displaying without double Quotes. when I see this global variable in Chrome debugger, it is showing with Double quotes and failing to populate values in Table control. I'm having bit hard time with my code in populating values into Table control which are coming from Servlet in JSON format/String/Array. Please help.



Appreciate of any input and help.


More From » json

 Answers
8

You could call JSON.parse to parse your string into an object at the very end, that is:



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


But instead of building yourself a string of JSON on the fly and then parsing it, it may just be simpler to set var global = []; and in your for loop do:



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


Have you tried the following?



$.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);
});

[#76056] Wednesday, August 28, 2013, 11 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
jaycoborionc

Total Points: 220
Total Questions: 106
Total Answers: 120

Location: Kenya
Member since Mon, Jun 14, 2021
3 Years ago
;