根据相同的JSON键值获取值

时间:2020-01-27 12:39:29

标签: javascript node.js

我有

这样的JSON
var resultJSON = `{
  "data": {
    "total": 1,
    "list_name": "title",
    "title": {
      "id": 53,
      "name": "Sonu",
      "mobileNo": "6543213456",
      "address": "Greeny Pathway",
      "city": "NewYork",
      "mode": "Weekly",
      "duration": "15",
      "qty": null
    },
    "download": [{
      "time": "16789042",
      "date": "26 - 01 - 2020"
    }]
  }
}`;

我希望输出:

{
  "total": "1",
  "list_name": "title",
  "name": "sonu",
  "mobileno": "6543213456"
}

根据我想获得的上述回复,"list_name": "title"是动态的,有时它会"list_name": "book"出现。

1 个答案:

答案 0 :(得分:1)

像这样?我必须修复您的无效JSON

如果您深入研究https://javascript.info/destructuring-assignment,可以使其更加聪明

const resultJSON = `{
  "data": {
    "total": 1,
    "list_name": "title",
    "title": {
      "id": 53,
      "name": "Sonu",
      "mobileNo": "6543213456",
      "address": "Greeny Pathway",
      "city": "NewYork",
      "mode": "Weekly",
      "duration": "15",
      "qty": null
    },
    "download": [{
      "time": "16789042",
      "date": "26-01-2020"
    }]
  }
}`
const data = JSON.parse(resultJSON).data
const content = data[data.list_name];
let newObj = {} 

newObj["total"]     = data["total"];
newObj["list_name"] = data["list_name"];
newObj["name"]      = content["name"];
newObj["mobileNo"]  = content["mobileNo"];
console.log(newObj)