为对象内的相关键/值解析JSON
Parsing JSON for related key/value within object
假设我有一个JSON数组,每个对象包含一堆不同的键/值。我知道如何使用Javascript来针对特定的键/值,但是如果我想搜索整个JSON文件以找到一个项目,然后还在同一对象中找到一个相关的对,该怎么办?
例如,我如何扫描以下JSON中的"白鲸记",然后找到与该标题相关的作者?
"store": {
"book": [
{ "category": "reference",
"author": "Nigel Rees",
"title": "Sayings of the Century",
"price": 8.95
},
{ "category": "fiction",
"author": "Evelyn Waugh",
"title": "Sword of Honour",
"price": 12.99
},
{ "category": "fiction",
"author": "Herman Melville",
"title": "Moby Dick",
"isbn": "0-553-21311-3",
"price": 8.99
},
{ "category": "fiction",
"author": "J. R. R. Tolkien",
"title": "The Lord of the Rings",
"isbn": "0-395-19395-8",
"price": 22.99
}
],
}
}
假设这是您的对象:
var store= {
"book": [
{...}, {...}
]
}
然后你可以试着像这样过滤:
var foundBooks = store.book.filter(function(book) { return book.title ==="Moby Dick"});
@JLRiche foundBooks
是一个数组。为了访问第一个匹配项,将采用与所有数组相同的方式:
var book = foundBooks[0];
您必须迭代列表,您可以创建一些自定义函数,如:
function findTitle(title) {
for (var i = 0; i < data.store.book.length; i++) {
if (data.store.book[i].title == title) {
return data.store.book[i];
}
}
}
所以你可以这样做:
var book = findTitle("Moby Dick"),
author = book.author;
您将遍历book
对象并找到book.title === "Moby Dick"
,然后查看book.author
以查找特定对象。
相关文章:
- 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对象