【问题标题】:Comparing a json file to POST details and returning value将 json 文件与 POST 详细信息进行比较并返回值
【发布时间】:2020-01-30 19:58:23
【问题描述】:

将 node.js 中的 HTTP Post 正文与 JSON 文件进行比较,如果匹配,请提供 JSON 文件中的详细信息。

我尝试了几个不同的函数,但不确定我的 JSON 文件的格式是否不符合我的需要,或者我是否缺少其他东西。

我已尝试使用此功能进行检查:

function checkForValue(json, value) {
  for (lic_key in json) {
      if (typeof (json[lic_key]) === "object") {
          return checkForValue(json[lic_key], value);
      } else if (json[lic_key] === value) {
          //new requirement - return whole object. 
          console.log("here's the key:")
          console.log(json);
          return json;

      }
  }
  return false;
}
function checkForValue2(licenses, input_key) {

  licenses.forEach(function(lic_key) {
    console.log(lic_key.lic_key);
    if (lic_key.lic_key == input_key){
      console.log("We have a match!")
      return lic_key;
    };
    //console.log(lic_key)
  });
}

这也是我的 JSON 文件。

[
  {"lic_key": "5d6d0916c810c639cced1da7",
    "meta":
      {
        "exp_date": "09/23/2019"},
        "organization": "Westar"
      },
    {
      "lic_key": "5d6d091601edbefc2c7f5af6",
      "meta":
      {
        "exp_date": "09/23/2019"}
      },
    {
      "lic_key": "5d6d0916f89d16775a54473d",
      "meta":
      {
        "exp_date": "09/23/2019"}
      },
    {
      "lic_key": "5d6d0916668f82f5b3e1a667",
      "meta":
      {
        "exp_date": "09/23/2019"}
      },
    {
      "lic_key": "5d6d0916012065c066976e5e",
      "meta":
      {
        "exp_date": "09/23/2019"}
      }
  ]

我希望函数返回 lic_key 与传递给函数的第二个变量匹配的对象。第一个变量是我从文件中加载的 JSON 对象。

【问题讨论】:

标签: javascript node.js json


【解决方案1】:

您可以使用Array.filter。参考-https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter

const jsonArray = [{
    "lic_key": "5d6d0916c810c639cced1da7",
    "meta": {
      "exp_date": "09/23/2019"
    },
    "organization": "Westar"
  },
  {
    "lic_key": "5d6d091601edbefc2c7f5af6",
    "meta": {
      "exp_date": "09/23/2019"
    }
  },
  {
    "lic_key": "5d6d0916f89d16775a54473d",
    "meta": {
      "exp_date": "09/23/2019"
    }
  },
  {
    "lic_key": "5d6d0916668f82f5b3e1a667",
    "meta": {
      "exp_date": "09/23/2019"
    }
  },
  {
    "lic_key": "5d6d0916012065c066976e5e",
    "meta": {
      "exp_date": "09/23/2019"
    }
  }
];

let findData = (json, value) => {
  const filtered = json.filter(j => j.lic_key === value);

  return (filtered && filtered[0]) || {};
};

console.log(findData(jsonArray, '5d6d0916012065c066976e5e'));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-07-05
    • 2012-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-17
    相关资源
    最近更新 更多