Javascript 如何从JSON对象读取密钥
我有以下JSON(被截断): 我想搜索一个值(现在从Javascript 如何从JSON对象读取密钥,javascript,json,object,Javascript,Json,Object,我有以下JSON(被截断): 我想搜索一个值(现在从var)并找到返回tvdb\u id的键 例如,如果我搜索“杰米有史以来最好的圣诞节”,我想返回相应的tvdb\u id 需要帮忙吗 function findKey(obj, value) { var key; _.each(obj, function (v, k) { if (v === value) { key = k; } }); return key; } 我如何实现它?(JSON新手
var
)并找到返回tvdb\u id
的键
例如,如果我搜索“杰米有史以来最好的圣诞节”,我想返回相应的tvdb\u id
需要帮忙吗
function findKey(obj, value) {
var key;
_.each(obj, function (v, k) {
if (v === value) {
key = k;
}
});
return key;
}
我如何实现它?(JSON新手)在现代浏览器(IE9+、FF4+、Chrome5+、Opera12+、Safari5+)中,您可以使用内置的Object.keys方法:
var keys = Object.keys(myJsonObject);
您也可以使用以下选项:
var getKeys = function(obj){
var keys = [];
for(var key in obj){
keys.push(key);
}
return keys;
}
在现代浏览器(IE9+、FF4+、Chrome5+、Opera12+、Safari5+)中,您可以使用内置的Object.keys方法:
var keys = Object.keys(myJsonObject);
您也可以使用以下选项:
var getKeys = function(obj){
var keys = [];
for(var key in obj){
keys.push(key);
}
return keys;
}
在您的示例中,您拥有的值是
键
,因此只需使用它访问所需的属性即可
var somevalue = 'Jamies Best Ever Christmas',
tvdb_id = jsonobj[somevalue].tvdb_id;
在您的示例中,您拥有的值是
键
,因此只需使用它访问所需的属性即可
var somevalue = 'Jamies Best Ever Christmas',
tvdb_id = jsonobj[somevalue].tvdb_id;
看起来你正在使用 加比的回答应该符合要求。然而,如果您正在寻找部分匹配,下划线.js有一些很酷的特性。考虑这一点:
var mappedResults = _.map(jsonobj, function(key, value, list) {
return {name:key, tvdb_id:value.tvdb_id};
});
这将为您提供一个对象数组,每个对象都有标题和tvdb id
要执行搜索,可以编写如下函数:
function getMatchingIds(searchterm) {
return _.filter(mappedResults, function(entry) {
return (entry.name.indexOf(searchterm) != -1);
});
}
看起来你正在使用 加比的回答应该符合要求。然而,如果您正在寻找部分匹配,下划线.js有一些很酷的特性。考虑这一点:
var mappedResults = _.map(jsonobj, function(key, value, list) {
return {name:key, tvdb_id:value.tvdb_id};
});
这将为您提供一个对象数组,每个对象都有标题和tvdb id
要执行搜索,可以编写如下函数:
function getMatchingIds(searchterm) {
return _.filter(mappedResults, function(entry) {
return (entry.name.indexOf(searchterm) != -1);
});
}
您的JSON无效<代码>{是不允许的。
JSON.parse
将JSON字符串转换为JS objectdupe:。您的JSON无效。{
是不允许的。JSON.parse
将JSON字符串转换为JS objectdupe:。如果OP使用下划线,.
键应该符合要求。它使用本机的键()
方法可用时。如果OP使用下划线,。键应符合要求。可用时,它使用本机键()
方法。谢谢,不完全是我要找的,但很有帮助。重新表述我的问题:谢谢,不完全是我要找的,但很有帮助。重新表述我的问题: