我正在使用ODATA service
从表中获取结果dataset
。我在JSON format
中获取数据,如下所示。
$.getJSON("../TEST_ODATA3.xsodata/COMPAREDATA?$format=json&$select=WERT&$filter=LIFNR eq '"+supplier+"' and ARTIKEL eq '"+artikel+"' and STOREID eq '"+storeId+"' and BUSINESS_DATE eq datetime'"+date_time+"'",
function(response){
for (i = 0; i < response.d.results.length; i++) {
console.log(response.WERT);}});
一切正常。但是,当我尝试从响应中访问列名WERT
时,我在浏览器控制台中将值undefined
。但是当我在浏览器上复制包含host and port
的相同链接时,我会看到列名和响应中的值。
任何人都可以告诉我上面代码中缺少的内容。我也试过console.log(response.d.results.WERT);
更新:响应如下:
{
d: {
results: [
{
__metadata: {
uri: "host:port/TEST_ODATA3.xsodata/COMPAREDATA('1')",
type: "TEST_ODATA3.COMPAREDATAType"
},
WERT: "35.26"
}
]
}
}
答案 0 :(得分:2)
results
是根据你的json的数组。您可以像这样访问它
response.d.results[0].WERT
答案 1 :(得分:1)
干净的缩进会告诉你问题。
您的对象WERT位于d.results数组中,您必须通过response.d.results[0].WERT
答案 2 :(得分:1)
对于循环,我更喜欢每个都使用jQuery:
$.getJSON("../TEST_ODATA3.xsodata/COMPAREDATA?$format=json&$select=WERT"+
"&$filter=LIFNR eq '"+supplier+
"' and ARTIKEL eq '"+artikel+
"' and STOREID eq '"+storeId+
"' and BUSINESS_DATE eq datetime'"+date_time+"'",
function(response){
$.sap.each(response.d.results, function(i, oItem){
console.log(oItem.WERT);
});
});