Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 如何基于字符串值查找JSON对象成员_Jquery_Jsonp_Getjson_Json - Fatal编程技术网

Jquery 如何基于字符串值查找JSON对象成员

Jquery 如何基于字符串值查找JSON对象成员,jquery,jsonp,getjson,json,Jquery,Jsonp,Getjson,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",

假设我有一个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
  }
    ]
  }
}
我想做的是抓取“book”的一个成员和它的所有字符串值对,其中标题是“荣誉之剑”。如何使用JQuery实现这一点?问题是,我不知道成员的索引ID,若我知道,那个么这将很简单,即store.book[1]。XXX将给出我正在寻找的所有同级键-值对的值

关于如何用最少的代码实现这一点,您有什么想法吗?

函数返回MatchedBook(商店){
function returnMatchedbook(store) {
    for(var i = 0; i < store.book.length; i++) {
        if(book[i].title == 'Sword of Honour') {
            return book[i];
        }
    }
 }
for(var i=0;i
使用数组:

结果将是与筛选器谓词匹配的所有
book
元素的数组


注意:这是一种ES5方法。非ES5浏览器的链接MDN页面上有一个垫片。

json转换器在哪里?@RoyiNamir what json converter?OP显然已经解码了JSON。我不明白他是否已经解码了(我仍然认为他没有)谢谢。成功了。但是我设法修改了代码,只获取每个元素的数组索引值,而不是标题并使用它。在无法获取索引号的情况下,这仍然很有用。要获取其他值,请单击console.log(匹配[0].category);console.log(匹配[0]。作者);console.log(匹配[0]。价格);这不是json。这是纯js对象。Json是一种文本表示。@RoyiNamir实际上这是合法的Json-提示是键周围的引号。但是我怀疑OP不需要知道如何解码JSON。@Alnitak JSON是一种文本表示
{a:3}
不是
{a:3}
实际上,我只是.ajax,数据类型是jsonp。因此,它将JSON解码为我的JS代码。我只是想把我正在处理的内容包含在文本中,以澄清我的问题。@Alnitak my bad。(我的误解)对不起。嘿,我更新了答案。它会从商店归还匹配的书
var matches = store.book.filter(function(val, index, array) {
    return val.title === 'Sword of Honour';
});