[英]selecting particular keys from json data
我有一个数组为:
var cols = ["ticker", "highPrice", "lowPrice","lastPrice"] // dynamic
来自后端的Json数据来自:
info = {ticker: "AAPL", marketCap: 2800000000, lowPrice: 42.72, highPrice: 42.84}
假设我要选择市值,则可以执行info.marketCap
。 但我只想选择键等于cols的那些json值, ie info.ticker, info.highPrice, info.lowPrice
并将N / A分配给json中未定义但存在于cols数组中的那些,即info.lastPrice = "N/A"
注意:cols不时更改
这是到目前为止我得到的
SyScreener.fillScreenerResult = function(info) {
var cols = ["ticker", "highPrice", "lowPrice", "openPrice", "lastPrice", "currentVol", "avgVol"];
var data = [];
for(var i=0; i<info.length; i++) {
var jsonKeys = Object.keys(info[i]);
for(var j=0; j<jsonKeys.length; i++) {
if(cols.contains(jsonKey[j])) {
// TODO something like - data.push([info[i].jsonKey[j])
} else {
// TODO something like - info[i].colsValue = "N/A"
}
}
}
SyUtils.createDataTable("screener_result", data);
};
你的意思是这样的:
var cols = ["ticker", "highPrice", "lowPrice","lastPrice"];
info = {ticker: "AAPL", marketCap: 2800000000, lowPrice: 42.72, highPrice: 42.84};
for(var c = 0, clen = cols.length; c < clen; c++) {
if( !(cols[c] in info) ) {
console.log("N/A");
}
else {
console.log(info[cols[c]]);
}
}
演示:: jsFiddle
我可能没有正确阅读您的问题,但据我了解,我可能会建议类似的事情。
for (var i=0; i<cols.length; i++) {
var fieldName = cols[i];
if (!info.hasOwnProperty(fieldName)) {
info[fieldName] = 'N/A';
}
}
这只是简单地遍历cols中的每个字段名称,并检查它是否是info JSON对象的属性。 如果尚不存在,则循环将添加值为“ N / A”的属性。
var cols = ["ticker", "highPrice", "lowPrice","lastPrice"]
var info = {ticker: "AAPL", marketCap: 2800000000, lowPrice: 42.72, highPrice: 42.84}
var output = {};
for(each in info) {
var index = cols.indexOf(each)
if(index != -1) {
output[each] = info[each];
//remove extra already checked element
cols.splice(index,1)
}
}
//append remaining keys
for(var i=0;i<cols.length;i++) {
output[cols[i]] = "N/A"
}
console.log(output)
//output Object {ticker: "AAPL", lowPrice: 42.72, highPrice: 42.84, lastPrice: "N/A"}
首先,您需要对JSON数据进行反序列化。 要使用jQuery来执行此操作,请使用parseJson函数,在将其反序列化后,您可以在此处http://api.jquery.com/jquery.parsejson/找到该数据,因为可以将其作为普通的javascript进行操作,因此可以对其进行任何处理。阵列。 希望这可以帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.