javascript - 使用 JavaScript 从嵌套 JSON 对象中的值获取上层键?

标签 javascript arrays json object

如果我知道下面嵌套 JSON 中键 name 的值 Africola,如何获取其对应的上层键“barID1” ' 在 JavaScript 中?

{
  "barID1": {
    "address": "4 East Terrace, Sydney NSW 2000",
    "appStoreURL": "http://itunes.apple.com/app/idXXXXXXXXX",
    "description": “description text”,
    "imgURLs": [ "Https:url1”,  "https:url2”, "https:url3” ],
    "lat": -34.810585,
    "lon": 138.616739,
    "name": "Africola",
    "phone": "(08) 8223 3885",
    "status": "active",
    "venueImgURL": "https:url”
  },
  "barID2": {
    "address": "138/140 Gouger St, Sydney NSW 2000",
    "appStoreURL": "http://itunes.apple.com/app/idXXXXXXXXX",
     "description": “description text”,
    "imgURLs": [ "Https:url1”,  "https:url2”, "https:url3” ],
    "lat": -34.848082,
    "lon": 138.599813,
    "name": "Disco Mexico Taqueria",
    "phone": "0416 855 108",
    "status": "active",
    "venueImgURL": "https:url”
  }
}

最佳答案

此处,您的 JSON 格式错误,包含无效字符。 在键上使用查找

let obj = {
  "barID1": {
    "address": "4 East Terrace, Sydney NSW 2000",
    "appStoreURL": "http://itunes.apple.com/app/idXXXXXXXXX",
    "description": "description text",
    "imgURLs": [ "Https:url1",  "https:url2", "https:url3" ],
    "lat": -34.810585,
    "lon": 138.616739,
    "name": "Africola",
    "phone": "(08) 8223 3885",
    "status": "active",
    "venueImgURL": "https:url"
  },
  "barID2": {
    "address": "138/140 Gouger St, Sydney NSW 2000",
    "appStoreURL": "http://itunes.apple.com/app/idXXXXXXXXX",
     "description": "description text",
    "imgURLs": [ "Https:url1",  "https:url2", "https:url3" ],
    "lat": -34.848082,
    "lon": 138.599813,
    "name": "Disco Mexico Taqueria",
    "phone": "0416 855 108",
    "status": "active",
    "venueImgURL": "https:url"
  }
};

let result = Object.keys(obj).find(key => obj[key].name === "Africola");
console.log(result);

作为函数:

let obj = {
  "barID1": {
    "address": "4 East Terrace, Sydney NSW 2000",
    "appStoreURL": "http://itunes.apple.com/app/idXXXXXXXXX",
    "description": "description text",
    "imgURLs": [ "Https:url1",  "https:url2", "https:url3" ],
    "lat": -34.810585,
    "lon": 138.616739,
    "name": "Africola",
    "phone": "(08) 8223 3885",
    "status": "active",
    "venueImgURL": "https:url"
  },
  "barID2": {
    "address": "138/140 Gouger St, Sydney NSW 2000",
    "appStoreURL": "http://itunes.apple.com/app/idXXXXXXXXX",
     "description": "description text",
    "imgURLs": [ "Https:url1",  "https:url2", "https:url3" ],
    "lat": -34.848082,
    "lon": 138.599813,
    "name": "Disco Mexico Taqueria",
    "phone": "0416 855 108",
    "status": "active",
    "venueImgURL": "https:url"
  }
};

const findKeyByName = (obj, search) => Object.keys(obj).find(key => obj[key].name === search);

console.log(findKeyByName(obj, 'Africola'));
console.log(findKeyByName(obj,'Disco Mexico Taqueria'));

关于javascript - 使用 JavaScript 从嵌套 JSON 对象中的值获取上层键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54798708/

相关文章:

java - Libgdx 将2个以上的 Sprite 数组组合成1个 Sprite 数组

c# - 如何解码包含UTF-8字节顺序标记(BOM)的JSON字符串?

java - 如何使用 Java 和 MySql 获取 Json 中正确的日期格式

c - 程序 'c:\...\a.exe' 已退出,代码为 0 (0x00000000)

javascript - 仅显示所选名称

javascript - 我如何在对象/数组中链接?

javascript - 如何在 ADF 中加载 JSF 片段(如正文 onload)时调用 javascript 函数

javascript - 在 Node.js 中获取变量内部的值

java - StringEscapeUtils 不处理 utf-8

javascript - 无法理解这段JS代码【数组和过滤器】