删除开头的双引号&结束于JSON对象/字符串或Java脚本变量
Remove Double Quotes at Begin & End from JSON Object/String or Java script Variable?
我正在从servlet中获取一个对象的JSON数组,并试图用java脚本填充表控件。
这是我的代码,由于某种原因,它在开头和结尾加了双引号,表控件不接受这一点来填充值。如何删除开头和结尾的双引号。
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
最后我得到了全局变量is的值,用双引号。
//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":"No","F":"BusinessD","G":"0","L1H":"AnalyticsM"}]
如何摆脱这个resultSet JSONArray对象开头和结尾的双引号?如果我放置Alert,它显示为没有双引号。当我在Chrome调试器中看到这个全局变量时,它显示为双引号,并且无法填充Table控件中的值。在将值填充到表控件中时,我的代码遇到了一些困难,这些值来自JSON格式/String/Array的Servlet。请帮忙。
感谢您的任何意见和帮助。
您可以调用JSON.parse在最后将字符串解析为一个对象,即:
global=JSON.parse("["+global+"]");
但是,与其在运行中构建一个JSON字符串然后对其进行解析,不如设置var global = [];
并在for循环中执行:
global.push({
Deals: data[i].Deals,
L1H: data[i].L1H,
L2H: data[i].L2H
});
你试过下面的吗?
$.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");
});
不要自己构建或解析json。有一些方法可以为你做这件事。
如果返回的json只有一个具有三个属性Deals
、L1H
和L2H
的对象数组,那么data
就是您想要的。如果返回的json有更多的属性,而您只需要这三个属性,请执行以下操作:
function(data) {
var arr = $.map(data, function(item, idx) {
return {
Data: item.Data,
L1H: item.L1H,
L2H: item.L2H
};
});
}
您的global
变量是一个JSON字符串。您不需要构造字符串。据我所知,data
已经是一个JavaScript对象了。我想这就是你想要的:
var global;
$.get('someServlet', function(data) {
global = data;
populateTable(global); // You could just as easily pass the data variable here
});
由于您使用的是jQuery,请尝试http://api.jquery.com/jQuery.parseJSON/它会返回一个对象。
试试这个:
var myJSON = eval( data );
其中data是servelt发送的字符串。Eval函数实现了将字符串解析为JSON的功能。
中消除社区的形式校正
var obJason = eval( dataString );
var obj= "[{"ID":"786-000X-XX8","NAME":"LISANDRO ARCILES"}]";
eval()
功能的应用
obj= eval( obj);
的形式
- jQuery匹配JSON对象的部分文本
- 如何在Javascript中将JSon对象转换为数组
- 我可以在json对象中添加一个函数吗
- 使用JS将数组转换为json对象
- 我应该如何将响应数据保存在对象(json)中以获得更好的操作和性能
- 用javascript从列表对象(JSON的)构建diffrent选项卡
- php请求带有多个对象json-jquery
- AngularJS,过滤器:如何将一个巨大的对象(JSON)变成一个数组
- 动态属性对象 - JSON
- JavaScript 对象 (JSON) 中的动态设置值
- 从数组查询获取对象 JSON 值时出错
- 使用jQuerygetJSON将多维对象JSON转换为HTML
- 需要从 Angular JS 应用程序中的另一个 JSON 对象数组填充 JSON 数组的每个对象 JSON 对象数组
- 嵌套对象JSON排序JavaScript
- PHP在MySQL中保存来自Javascript的对象"JSON.stringify"通过Ajax
- 将JavaScript对象/ JSON转换为PHP数组
- JSON对象.JSON对象内部
- 访问对象的对象- JSON API
- 数组到对象JSON
- Message":"传入的无效对象(JSON数据格式化问题)