首页 > 解决方案 > 将 XML 转换为 Json。并获取特定数据(Javascript)

问题描述

每个人!我ve completely stuck with one project. https://plnkr.co/edit/lcPGvAE10qhY9Px89c1e?p=preview I need to convert xml to json(that seems to work). But when i save it from plnkr can不会离线打开它。如果您能帮我从这个 json 中获取特定数据,那就太好了。1) 每人的配偶 2) 最后 10 人。3) 特定人的祖先。谢谢您的回答。祝你今天过得愉快

标签: javascriptjqueryhtmljsonxml

解决方案


我实际上试图从这个数据集中找出任何使用他/她名字的特定人。我知道这不是答案,但我认为这至少会让您对解决方案的路径有所了解。这是JS-bin 链接

const data = JSON.parse(`{"person":{"name":"Abram","surname":"Hannibal","maidenname":"None","dateofbirth":"1696","dateofdeath":"1781","childreninfo":"","family":"","marriage":{"person":{"name":"Hristina-Regina","surname":"Von Shenberg","maidenname":"Unknown","dateofbirth":"Unknown","dateofdeath":"1705","childreninfo":"","family":""}},"children":{"person":{"name":"Osip","surname":"Hannibal","maidenname":"None","dateofbirth":"1744","dateofdeath":"1807","childreninfo":"","family":"","marriage":{"person":{"name":"Maria","surname":"Pushkina","maidenname":"Hannibal","dateofbirth":"1745","dateofdeath":"1819","childreninfo":"","family":"","children":{"person":{"name":"Nadezhda","surname":"Pushkina","maidenname":"Hannibal","dateofbirth":"1775","dateofdeath":"1836","childreninfo":"","family":"","marriage":{"person":{"name":"Sergei","surname":"Pushkin","maidenname":"None","dateofbirth":"1770","dateofdeath":"1838","childreninfo":"","family":""}},"children":{"person":{"name":"Lev","surname":"Pushkin","maidenname":"None","dateofbirth":"1805","dateofdeath":"1852","childreninfo":"","family":"","marriage":{"person":{"name":"Olga","surname":"Pushkina","maidenname":"Pavlistsheva","dateofbirth":"1797","dateofdeath":"1868","childreninfo":"","family":""}},"children":{"person":{"name":"Alexandr","surname":"Pushkin","maidenname":"None","dateofbirth":"1799","dateofdeath":"1837","childreninfo":"","family":"","marriage":{"person":{"name":"Natalia","surname":"Pushkina","maidenname":"Goncharova","dateofbirth":"1812","dateofdeath":"1863","childreninfo":"","family":""}},"children":{"person":[{"name":"Maria","surname":"Gartung","maidenname":"Pushkina","dateofbirth":"1832","dateofdeath":"1919","childreninfo":"","family":""},{"name":"Aleksandr","surname":"Pushkin","maidenname":"None","dateofbirth":"1833","dateofdeath":"1914","childreninfo":"","family":""},{"name":"Grigori","surname":"Pushkin","maidenname":"None","dateofbirth":"1835","dateofdeath":"1905","childreninfo":"","family":""},{"name":"Natalia","surname":"Pushkina","maidenname":"Unknown","dateofbirth":"1836","dateofdeath":"1913","childreninfo":"","family":""}]}}}}}}}}}}}}}
`);

let foundPersonObj = {};
function findPerson(data, name) {
  if (data.name && data.name.toLowerCase() === name.toLowerCase()) {
    foundPersonObj = data;
  } else {
    if (
      data.marriage &&
      typeof data.marriage.person === "object" &&
      data.marriage.person !== null
    ) {
      findPerson(data.marriage.person, name);
    }
    if (
      data.children &&
      typeof data.children.person === "object" &&
      data.children.person !== null
    ) {
      findPerson(data.children.person, name);
    }
  }
  return foundPersonObj;
}

console.log(findPerson(data.person, "Osip"));

如果您在此代码中发现任何问题,请告诉我。


推荐阅读