![](/img/trans.png)
[英]How do I create following in json and fetch as array in javascript and search for particular value?
[英]How to search particular parameter in an array of JSON in JavaScript?
我在这里做的很简单:使用他们的图形API获取Facebook新闻提要。 我正在接收json对象并将其提取到页面。 “喜欢”以JSON数组的形式出现(显然),如下所示:
数据赞:
{
"count":2,
"data":[
{"name":"Jennifer Doe","id":"{user_id}"},
{"name":"John Doe","id":"{user_id}"}
]
}
我的目标是知道当前用户是否喜欢它-假设我具有当前用户的user_id
。 那么,检查当前用户是否喜欢此帖子的最简单方法是什么?
我知道我可以设置循环并遍历每个数据,但这不仅效率低下,而且看起来很糟糕。 我也可以使用$.inArray()
并查找特定的JSON对象,但我希望只能通过user_id
进行搜索。
任何帮助,将不胜感激。 谢谢!
我立即想到两种解决方案:
-a这样的循环
for (jsonobj in data.likes.data){
//scan each jsonobj for the user
}
-您也可以使用以下方法将JSON对象转换为字符串
JSON.stringify(jsonobj)
然后使用某种搜索方法在其中搜索用户ID(例如“搜索”: http : //www.w3schools.com/jsref/jsref_search.asp或indexOf: http : //www.w3schools.com/jsref /jsref_indexof.asp )。
如果您需要更多详细信息,我可以对此进行详细说明。
最简单的方法是执行一个for循环,您可以使用javascript eval方法创建一个通用方法,以仅返回您要查找的对象。
function searchArr(arr, field, val) {
var output = [];
for (var i = 0; i < arr.length; i++) {
if (eval('arr[i].' + field) == val) {
output.push(arr[i]);
}
}
return output;
}
并可以通过您的数据调用这种方式var matches = searchArr(data, 'id', userId);
此方法适用于任何对象...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.