按索引位置解析json对象数组
parse json object array by index position
我正在分析json对象数组,这样,如果值="y",键列表将以逗号分隔的列表形式返回,该列表是一个将在html中返回的变量。
我想按索引位置引用键/值对,因为我只想返回键/值#13-39的值。
有什么关于最好的方法的建议吗?
我已经有一个jquery映射函数可以通过(即obj.address)访问一些属性。但我还不能成功地使用filter或grep只选择具有特定关键字名称或索引位置的对象属性。
这就是阵列的样子:
[{"Name": "Name1", "Key1": "Y", "Key2": "Y", "Key3": "N", "Key4": "Y", "Key5": "N"},
{"Name": "Name2", "Key1": "N", "Key2": "Y", "Key3": "Y", "Key4": "N", "Key5": "N"},
{"Name": "Name3", "Key1": "N", "Key2": "Y", "Key3": "Y", "Key4": "Y", "Key5": "Y"}}
谢谢你的帮助!
我想您可以使用jQuery的$.map
找到一些方法来实现这一点,但就我个人而言,我发现用纯JavaScript的方式更容易实现。(请注意,如果您的密钥实际上没有命名为"Key1"
、"Key2"
等,但您希望通过它们在关联数组中的位置来访问密钥,那么这就没有可靠的跨浏览器实现。):
var bar = [
{"Name": "Name1", "Key1": "Y", "Key2": "Y", "Key3": "N",
"Key4": "Y", "Key5": "N"},
{"Name": "Name2", "Key1": "N", "Key2": "Y", "Key3": "Y",
"Key4": "N", "Key5": "N"},
{"Name": "Name3", "Key1": "N", "Key2": "Y", "Key3": "Y",
"Key4": "Y", "Key5": "Y"}
];
var parsed = {}; // this contains the result
var MIN_KEY = 2; // set to 13 for your request
var MAX_KEY = 4; // set to 39 for your request
for (var i = 0, iLen = bar.length; i < iLen; i++) {
var baz = bar[i];
var name;
var temp = [];
for (var key in baz) {
var keyNum = parseInt(key.replace("Key", ""));
// Get the name or add valid key to an array
if (key === "Name") {
name = baz[key];
} else if (baz[key] === "Y" && keyNum >= MIN_KEY && keyNum < MAX_KEY) {
temp.push(key);
}
}
// Concatenates temp array like "Key1, Key2, Key3"
parsed[name] = temp.join(", ");
}
console.log(bar);
console.log(parsed);
通过计数密钥的替代实现(注意,这在浏览器中可能不可靠):
for (var i = 0, iLen = bar.length; i < iLen; i++) {
var counter = 0;
var baz = bar[i];
var name;
var temp = [];
for (var key in baz) {
if (key === "Name") {
name = baz[key];
} else if (baz[key] === "Y" && counter >= MIN_KEY && counter < MAX_KEY) {
temp.push(key);
}
counter++;
}
parsed[name] = temp.join(", ");
}
相关文章:
- jQuery匹配JSON对象的部分文本
- 如何在Javascript中将JSon对象转换为数组
- 我可以在json对象中添加一个函数吗
- 使用JS将数组转换为json对象
- 如何为json对象中的段发送array[]
- 将JSON对象传递给angular指令
- 更改JSON对象的结构
- 访问JSON对象内部的数组元素
- 在ejs-partial中对JSON对象进行迭代
- 遍历 JSON 对象并检查 URL 是否以某个值结尾
- 访问嵌套JSON对象的键,其中键是动态的
- json对象中缺少对象循环
- 发送json对象或使用express路由呈现视图
- 在play2框架中向json对象添加下拉列表项
- 元素名称上带有短划线 (-) 字符的 Json 对象
- autocomplete不接受源的json对象
- 如何在javascript中创建动态json对象
- 在使用客户端脚本时拾取JSON对象
- 如何通过json对象数组为嵌套对象赋值
- 构造JSON对象