Javascript 如何从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新手

我有以下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使用下划线,
键应符合要求。可用时,它使用本机
键()
方法。谢谢,不完全是我要找的,但很有帮助。重新表述我的问题:谢谢,不完全是我要找的,但很有帮助。重新表述我的问题: