Javascript 在JSON'内搜索;s属性
我有这样一个JSON:Javascript 在JSON'内搜索;s属性,javascript,jquery,filter,Javascript,Jquery,Filter,我有这样一个JSON: var parse = [ { "variation_id":"34", "attributes":{ "attribute_pa_rozmiar":"m" }, "image_src":"http://localhost/Fraise-WP/wp-content/uploads/2013/06/Jellyfish-300x300.jpg", "image_link":"http:
var parse = [
{
"variation_id":"34",
"attributes":{
"attribute_pa_rozmiar":"m"
},
"image_src":"http://localhost/Fraise-WP/wp-content/uploads/2013/06/Jellyfish-300x300.jpg",
"image_link":"http://localhost/Fraise-WP/wp-content/uploads/2013/06/Jellyfish.jpg",
"image_title":"Jellyfish",
"price_html":"",
"availability_html":"<p class=\"stock \">10 w magazynie</p>",
"sku":"",
"weight":"4 kg",
"dimensions":"",
"min_qty":1,
"max_qty":"10",
"backorders_allowed":false,
"is_in_stock":true,
"is_downloadable":false,
"is_virtual":false,
"is_sold_individually":"no"
},
{
"variation_id":"33",
"attributes":{
"attribute_pa_rozmiar":"s"
},
"image_src":"http://localhost/Fraise-WP/wp-content/uploads/2013/06/Desert-300x300.jpg",
"image_link":"http://localhost/Fraise-WP/wp-content/uploads/2013/06/Desert.jpg",
"image_title":"Desert",
"price_html":"",
"availability_html":"<p class=\"stock \">5 w magazynie</p>",
"sku":"",
"weight":"4 kg",
"dimensions":"",
"min_qty":1,
"max_qty":"5",
"backorders_allowed":false,
"is_in_stock":true,
"is_downloadable":false,
"is_virtual":false,
"is_sold_individually":"no"
}
][
{
"variation_id":"34",
"attributes":{
"attribute_pa_rozmiar":"m"
},
"image_src":"http://localhost/Fraise-WP/wp-content/uploads/2013/06/Jellyfish-300x300.jpg",
"image_link":"http://localhost/Fraise-WP/wp-content/uploads/2013/06/Jellyfish.jpg",
"image_title":"Jellyfish",
"price_html":"",
"availability_html":"<p class=\"stock \">10 w magazynie</p>",
"sku":"",
"weight":"4 kg",
"dimensions":"",
"min_qty":1,
"max_qty":"10",
"backorders_allowed":false,
"is_in_stock":true,
"is_downloadable":false,
"is_virtual":false,
"is_sold_individually":"no"
},
{
"variation_id":"33",
"attributes":{
"attribute_pa_rozmiar":"s"
},
"image_src":"http://localhost/Fraise-WP/wp-content/uploads/2013/06/Desert-300x300.jpg",
"image_link":"http://localhost/Fraise-WP/wp-content/uploads/2013/06/Desert.jpg",
"image_title":"Desert",
"price_html":"",
"availability_html":"<p class=\"stock \">5 w magazynie</p>",
"sku":"",
"weight":"4 kg",
"dimensions":"",
"min_qty":1,
"max_qty":"5",
"backorders_allowed":false,
"is_in_stock":true,
"is_downloadable":false,
"is_virtual":false,
"is_sold_individually":"no"
}
]
var parse=[
{
“变更id”:“34”,
“属性”:{
“属性_pa_rozmiar”:“m”
},
“图像\u src”:http://localhost/Fraise-WP/wp-content/uploads/2013/06/Jellyfish-300x300.jpg",
“图像链接”:http://localhost/Fraise-WP/wp-content/uploads/2013/06/Jellyfish.jpg",
“图片标题”:“水母”,
“价格”:“,
“可用性html”:“10 w magazynie
”,
“sku”:“,
“重量”:“4公斤”,
“尺寸”:“,
“最小数量”:1,
“最大数量”:“10”,
“允许延期交货”:错误,
“是否有库存”:正确,
“是否可下载”:false,
“是虚拟的”:假,
“是否单独出售”:“否”
},
{
“变更id”:“33”,
“属性”:{
“属性_pa_rozmiar”:“s”
},
“图像\u src”:http://localhost/Fraise-WP/wp-content/uploads/2013/06/Desert-300x300.jpg",
“图像链接”:http://localhost/Fraise-WP/wp-content/uploads/2013/06/Desert.jpg",
“图片标题”:“沙漠”,
“价格”:“,
“可用性html”:“5 w magazynie
”,
“sku”:“,
“重量”:“4公斤”,
“尺寸”:“,
“最小数量”:1,
“最大数量”:“5”,
“允许延期交货”:错误,
“是否有库存”:正确,
“是否可下载”:false,
“是虚拟的”:假,
“是否单独出售”:“否”
}
][
{
“变更id”:“34”,
“属性”:{
“属性_pa_rozmiar”:“m”
},
“图像\u src”:http://localhost/Fraise-WP/wp-content/uploads/2013/06/Jellyfish-300x300.jpg",
“图像链接”:http://localhost/Fraise-WP/wp-content/uploads/2013/06/Jellyfish.jpg",
“图片标题”:“水母”,
“价格”:“,
“可用性html”:“10 w magazynie
”,
“sku”:“,
“重量”:“4公斤”,
“尺寸”:“,
“最小数量”:1,
“最大数量”:“10”,
“允许延期交货”:错误,
“是否有库存”:正确,
“是否可下载”:false,
“是虚拟的”:假,
“是否单独出售”:“否”
},
{
“变更id”:“33”,
“属性”:{
“属性_pa_rozmiar”:“s”
},
“图像\u src”:http://localhost/Fraise-WP/wp-content/uploads/2013/06/Desert-300x300.jpg",
“图像链接”:http://localhost/Fraise-WP/wp-content/uploads/2013/06/Desert.jpg",
“图片标题”:“沙漠”,
“价格”:“,
“可用性html”:“5 w magazynie
”,
“sku”:“,
“重量”:“4公斤”,
“尺寸”:“,
“最小数量”:1,
“最大数量”:“5”,
“允许延期交货”:错误,
“是否有库存”:正确,
“是否可下载”:false,
“是虚拟的”:假,
“是否单独出售”:“否”
}
]
我需要的是在属性
中运行搜索,查找此对象是否有,例如属性_pa_rozmiar=m
,并获得相应的图像_src
。很抱歉这么臃肿的JSON,但这是我唯一能把它弄出来的方法
我尝试根据找到的示例运行$.each和$.map函数,但都不起作用
请尝试:
试试这个。。它使用$。每个,工作正常
$.each(parse, function(i, item) {
$.each(item, function(j, innerItem){
// perform search on innerItem.a or innerItem.b
});
});
更新:
根据你的最新更新,你的JSON是无效的。在变量数据的中间有额外的数据。
我已经创建了另一个JSFIDLE来解决您的问题。请参阅正在运行的演示:
PS-当你必须发布这种长代码时,你可以使用在线格式化程序,然后发布它。你能告诉我们你是如何尝试的吗?我的JSON是这样的:
var parse=[{“attributes”:{“attributes”:“s”},…]
。所以我使用了`$.each(parse.attributes,function(I,v){if(v.attributes.search(new RegExp(/s/I))!=-1){alert(v.attributes});但它在控制台中返回“uncaughttypeerror:无法读取未定义的属性'length'”。@TomekBuszewski:您想要$。[…](parse,
then-parse
没有属性,但是是一个arrayReturns未捕获类型错误:无法读取未定义的属性“length”;不适用于您呈现的对象。对于您在注释中发布的对象,它将是$.grep(parse,function(v){return v.attributes.attributes\u.indexOf(“s”)!=-1;})
在控制台中获取了大量未定义的信息。知道为什么吗?我已经为同一个控制台创建了一个JSFIDLE,请查看它是否正在运行。我在这里介绍的解决方案有一个问题:您能帮我吗?
$.each(parse, function(i, item) {
$.each(item, function(j, innerItem){
// perform search on innerItem.a or innerItem.b
});
});