当前位置: 首页 > 知识库问答 >
问题:

当我有一个JSON对象列表时,如何从唯一键返回值?[重复]

陈项禹
2023-03-14

我有一个JSON对象列表,我想访问一个名为“91842301”的键。请参见下面的代码

我该怎么做呢?

我尝试过使用find、where、propertyOf等函数,但这些函数没有考虑到我正在搜索一个对象列表,我只知道该对象的键,而不知道该对象在列表中的位置。

[{
  "918345787": [
    {
      "year": "2018",
      "name": "Lucidtech AS",
      "organizationNumber": "918345787",
      "employees": "5",
      "currency": "NOK",
      "totalOperatingIncome": 481000,
      "personnelExpenses": 900000,
      "salaryCosts": 741000,
      "operatingProfit": -1043000,
      "netIncome": -1042000,
      "timestamp": "2019-7-2 13:30:16",
      "daughter": "No avaliable information about daughters"
    },
    {
      "year": "2017",
      "name": "Lucidtech AS",
      "organizationNumber": "918345787",
      "employees": "unknown",
      "currency": "NOK",
      "totalOperatingIncome": 300000,
      "personnelExpenses": 813000,
      "salaryCosts": 710000,
      "operatingProfit": -622000,
      "netIncome": -621000,
      "timestamp": "2019-7-2 13:30:16",
      "daughter": "No avaliable information about daughters"
    }
  ]
},
{
  "979369867": [
    {
      "year": "2018",
      "name": "Sikom AS",
      "organizationNumber": "979369867",
      "employees": "11",
      "currency": "NOK",
      "totalOperatingIncome": 18448000,
      "personnelExpenses": 5563000,
      "salaryCosts": null,
      "operatingProfit": 275000,
      "netIncome": 56000,
      "timestamp": "2019-7-2 13:30:37",
      "daughter": "No avaliable information about daughters"
    },
    {
      "year": "2017",
      "name": "Sikom AS",
      "organizationNumber": "979369867",
      "employees": "unknown",
      "currency": "NOK",
      "totalOperatingIncome": 15467000,
      "personnelExpenses": 3453000,
      "salaryCosts": 2758000,
      "operatingProfit": -1000,
      "netIncome": 74000,
      "timestamp": "2019-7-2 13:30:37",
      "daughter": "No avaliable information about daughters"
    }
  ]
}]

共有3个答案

闾丘树
2023-03-14

如果我很清楚你想要什么,下面是一个可行的例子:

let findKey = "918345787";

let array = [{
  "918345787": [
    {
      "year": "2018",
      "name": "Lucidtech AS",
      "organizationNumber": "918345787",
      "employees": "5",
      "currency": "NOK",
      "totalOperatingIncome": 481000,
      "personnelExpenses": 900000,
      "salaryCosts": 741000,
      "operatingProfit": -1043000,
      "netIncome": -1042000,
      "timestamp": "2019-7-2 13:30:16",
      "daughter": "No avaliable information about daughters"
    },
    {
      "year": "2017",
      "name": "Lucidtech AS",
      "organizationNumber": "918345787",
      "employees": "unknown",
      "currency": "NOK",
      "totalOperatingIncome": 300000,
      "personnelExpenses": 813000,
      "salaryCosts": 710000,
      "operatingProfit": -622000,
      "netIncome": -621000,
      "timestamp": "2019-7-2 13:30:16",
      "daughter": "No avaliable information about daughters"
    }
  ]
},
{
  "979369867": [
    {
      "year": "2018",
      "name": "Sikom AS",
      "organizationNumber": "979369867",
      "employees": "11",
      "currency": "NOK",
      "totalOperatingIncome": 18448000,
      "personnelExpenses": 5563000,
      "salaryCosts": null,
      "operatingProfit": 275000,
      "netIncome": 56000,
      "timestamp": "2019-7-2 13:30:37",
      "daughter": "No avaliable information about daughters"
    },
    {
      "year": "2017",
      "name": "Sikom AS",
      "organizationNumber": "979369867",
      "employees": "unknown",
      "currency": "NOK",
      "totalOperatingIncome": 15467000,
      "personnelExpenses": 3453000,
      "salaryCosts": 2758000,
      "operatingProfit": -1000,
      "netIncome": 74000,
      "timestamp": "2019-7-2 13:30:37",
      "daughter": "No avaliable information about daughters"
    }
  ]
}]

//Traditional form
for (let i=0; i<array.length; i++) {
  if (array[i][findKey] != undefined) {
    console.log("Traditional From:");
    console.log(array[i][findKey]);
  }
}

//Pro form:
 let elements = array.filter(element => element[findKey] != undefined);
 console.log("Pro Form!");
 console.log(elements);
束飞捷
2023-03-14

使用“查找”在数组中查找内容。

用于测试属性是否存在。

const that_which_is_sought = "91842301";
const found_object = your_array.find( object_in_array => that_which_is_sought in object_in_array );
朱睿
2023-03-14

您可以检查密钥是否存在并获取此对象。

key = '8980243'
result = data.find(object => key in object);
 类似资料:
  • 我试图返回这个JSON对象中第一个条目的“publisher”和“title”值。 当我运行这段代码时,我可以在开始时返回减去计数部分的对象。 然而,当我试图运行: 我得到一个错误: 我应该在代码中执行哪些操作来打印信息:

  • 我对Spring编程是新手。我正在用Reactor/Webflux项目测试反应式编程。 数据库注册通过POST工作得很好。 我的模型: 我的存储库 我的用户服务

  • 嗨,所有Stackoverflow大师, 我正在开发一个应用程序,该应用程序使用来自某个rest webservice的JSON。 此链接上的示例JSONhttp://pastebin.com/embed_js.php?i=VYESA9MG(这是由于JSON有点长) 我创建了一个POJO类来满足这个JSON模型,如下所示: 这个模型在我们的代码中使用GSON模块调用。目前我已经抓到JSON,据了解

  • 我有两个对象列表,它们在两个列表中都有重复名称。我需要从清单2中删除清单1中的所有重复值。 下面是一个场景,类有名称变量,用这个变量需要检查清单1中的重复值并需要删除。 //这是具有3个对象的第一个列表 清单1大小为1 请建议我在Java8与流。

  • 我的数据库中有两个表: 表1:购买物品 表1列出了购买的物品,表2每小时更新一次每件物品的当前价格。因此,从表2中可以清楚地看出,肉类最后一次交易是在2013年2月20日上午10点,而鱼类不是在同一天交易的,它是在2013年2月19日上午9点交易的,鸡肉是在2013年2月20日上午9点交易的。我想做的是,列出表1中的所有项目,并加入表2中各个项目的最后交易价格,如下所示: 这里应该应用什么类型的连

  • 我有一组这样的对象: 我想对其进行过滤,以便每个唯一名称都有一个实例,该实例必须给出小于或等于40的最大值。如果过滤,上述情况将返回: 最终的数组不必按任何特定的顺序排序。