从Objects获取值

时间:2017-06-10 19:26:12

标签: json node.js object

我正在编写代码以从站点获取XML并解析它。

我想从解析的JSON中获取所有标题。我怎么能这样做?

我尝试过很多东西,但仍然无法让它发挥作用。可悲的是,我试了几个小时。

解析了JSON:

[ { title: [ 'Dit was de Week (10 juni)' ],
    link: [ 'http://nos.nl/l/2177585' ],
    description: [ 'Een terugblik op het belangrijkste nieuws van de afgelopen week.' ],
    pubDate: [ 'Sat, 10 Jun 2017 19:40:25 +0200' ],
    guid: [ [Object] ] },
  { title: [ '\'Het is best nog wel een beetje spannend\'' ],
    link: [ 'http://nos.nl/l/2177581' ],
    description: [ 'Je even helemaal inleven in een karakter. Dat is wat bezoekers van Animecon in Den Haag dit weekend doen. Een festival vol levende Japanse karakters uit films of videogames. "Het is een heerlijk gevoel, maar het is soms best nog wel een beetje spannend", vertelt Anastasia, een professionele cosplayer.' ],
    pubDate: [ 'Sat, 10 Jun 2017 18:41:45 +0200' ],
    guid: [ [Object] ] },
  { title: [ 'Ruzie Amsterdam loopt uit op steekpartij: dode en gewonden' ],
    link: [ 'http://nos.nl/l/2177578' ],
    description: [ 'Bij een steekpartij in een woning in Amsterdam-Zuidoost is een dode gevallen.  Een andere man raakte gewond. Dat gebeurde vanochtend vroeg bij een uit de hand gelopen ruzie tussen vier mannen tijdens een feestje, zo denkt de politie. ' ],
    pubDate: [ 'Sat, 10 Jun 2017 18:27:04 +0200' ],
    guid: [ [Object] ] },
  { title: [ 'Vrouw wordt met een touw in veiligheid gebracht' ],
    link: [ 'http://nos.nl/l/2177573' ],
    description: [ 'In de stad waarin IS en het Iraakse leger vechten komen burgers regelmatig in de vuurlinie te liggen. Soms moeten ze zich zelf redden, soms schieten militairen burgers die vluchten voor IS-vuur te hulp.' ],
    pubDate: [ 'Sat, 10 Jun 2017 17:30:12 +0200' ],
    guid: [ [Object] ] },
  { title: [ 'Zo zien de fosforaanvallen in Mosul eruit' ],
    link: [ 'http://nos.nl/l/2177572' ],
    description: [ 'Er komen berichten uit de Iraakse stad Mosul dat ook fosforbommen worden ingezet in de strijd tegen IS. Volgens Islamitische Staat bestookt het Iraakse regeringsleger de stad met de brandbommen.' ],
    pubDate: [ 'Sat, 10 Jun 2017 17:29:23 +0200' ],
    guid: [ [Object] ] },
  { title: [ 'Vluchten uit Mosul: \'We moeten de katten opeten\'' ],
    link: [ 'http://nos.nl/l/2177571' ],
    description: [ 'Oud en jong probeert de belegerde stad Mosul te ontvluchten. Jongeren dragen de ouderen in kapotte kinderwagens de stad uit. De situatie is door de gevechten tussen IS en het Iraakse regeringsleger de afgelopen week verslechterd.' ],
    pubDate: [ 'Sat, 10 Jun 2017 17:28:40 +0200' ],
    guid: [ [Object] ] },
  { title: [ 'Italiaans maffialid uit Aalsmeer opgepakt in São Paulo' ],
    link: [ 'http://nos.nl/l/2177553' ],
    description: [ 'De politie in Brazilië heeft een Italiaans maffialid opgepakt. De man, Vincenzo Macrì, coördineerde volgens de politie als bloemenhandelaar vanuit Aalsmeer leveringen van grote partijen cocaïne van Zuid-Amerika naar Europa. ' ],
    pubDate: [ 'Sat, 10 Jun 2017 15:48:09 +0200' ],
    guid: [ [Object] ] },
  { title: [ 'Botsende ballonnen met gewonde in de VS' ],
    link: [ 'http://nos.nl/l/2177531' ],
    description: [ 'Vier ballonnen staan klaar om op te stijgen, Plotseling draait de wind. En dan gaat het mis in de Chatsworth, in het Amerikaanse Illinois. Twee ballonnen botsen. Er valt een lichtgewonde.' ],
    pubDate: [ 'Sat, 10 Jun 2017 13:19:21 +0200' ],
    guid: [ [Object] ] },
  { title: [ 'Kosovaren in de rij voor een visum' ],
    link: [ 'http://nos.nl/l/2177490' ],
    description: [ 'In Kosovo zijn zondag verkiezingen. Maar in plaats van de campagnes volgen, zijn Kosovaren vooral druk met wat anders: in de rij staan voor ambassades van verschillende EU-landen. ' ],
    pubDate: [ 'Sat, 10 Jun 2017 08:08:16 +0200' ],
    guid: [ [Object] ] },
  { title: [ 'Dronebeelden van gevechten bij Marawi' ],
    link: [ 'http://nos.nl/l/2177530' ],
    description: [ 'Op dronebeelden zonder geluid is te zien dat er hevig wordt gevochten in de Filipijnse stad Marawi. Het regeringsleger beschiet stellingen van de moslimrebellen in de stad.' ],
    pubDate: [ 'Sat, 10 Jun 2017 08:06:18 +0200' ],
    guid: [ [Object] ] },
  { title: [ 'Eindhoven: Politie massaal aanwezig vanwege \'verdachte situatie\'\'' ],
    link: [ 'http://nos.nl/l/2177478' ],
    description: [ 'Agenten lopen rond op het station en rond het stadion van Eindhoven, aan het einde van het concert van Guus Meeuwis, ' ],
    pubDate: [ 'Fri, 09 Jun 2017 23:56:08 +0200' ],
    guid: [ [Object] ] },
  { title: [ '\'Ik wilde het publieke debat, geen veiligheidsrisico\'s\'' ],
    link: [ 'http://nos.nl/l/2177469' ],
    description: [ 'De onlangs vrijgelaten Amerikaanse ex-militair Chelsea Mannings vertelt voor het eerst over het lekken van staatsgeheimen aan WikiLeaks' ],
    pubDate: [ 'Fri, 09 Jun 2017 22:44:10 +0200' ],
    guid: [ [Object] ] },
  { title: [ 'Wanhopige actie tegen huisuitzetting in Peru' ],
    link: [ 'http://nos.nl/l/2177455' ],
    description: [ 'Ouders in Peru nemen wanhopige maatregelen om te voorkomen dat ze uit hun huis gezet worden. Ze zetten daarbij het leven van hun kinderen op het spel.' ],
    pubDate: [ 'Fri, 09 Jun 2017 21:57:53 +0200' ],
    guid: [ [Object] ] },
  { title: [ '\'Blijf godverdomme van de camping af\'' ],
    link: [ 'http://nos.nl/l/2177453' ],
    description: [ 'De bewoners van Fort Oranje zijn niet blij met aangekondigde ontruiming van de camping.' ],
    pubDate: [ 'Fri, 09 Jun 2017 21:53:30 +0200' ],
    guid: [ [Object] ] },
  { title: [ 'Bouwvallig, vervuild en brandgevaarlijk: Wonen op Fort Oranje' ],
    link: [ 'http://nos.nl/l/2177444' ],
    description: [ 'Volgens de burgemeester lijkt de permanent bewoonde camping op een woonwijk, maar dan verloederd, vies en gevaarlijk. Tijd om Fort Oranje te sluiten.' ],
    pubDate: [ 'Fri, 09 Jun 2017 20:41:10 +0200' ],
    guid: [ [Object] ] },
  { title: [ 'May bezocht koningin na verkiezingsnederlaag' ],
    link: [ 'http://nos.nl/l/2177366' ],
    description: [ 'De Britse premier May heeft bij de verkiezingen verloren, maar toch is ze bij de koningin geweest en gaat ze een nieuwe regering vormen. ' ],
    pubDate: [ 'Fri, 09 Jun 2017 02:33:23 +0200' ],
    guid: [ [Object] ] },
  { title: [ 'Statement Buma' ],
    link: [ 'http://nos.nl/l/2177415' ],
    description: [ 'In het Catshuis hebben VVD, CDA, D66 en GroenLinks weer overlegd. CDA-leider Buma zei dat er maandag weer verder wordt gepraat. ' ],
    pubDate: [ 'Fri, 09 Jun 2017 16:38:29 +0200' ],
    guid: [ [Object] ] },
  { title: [ 'Bouwvallig, vervuild en brandgevaarlijk: Wonen op Fort Oranje' ],
    link: [ 'http://nos.nl/l/2177407' ],
    description: [ 'Volgens de burgemeester lijkt de permanent bewoonde camping op een woonwijk, maar dan verloederd, vies en gevaarlijk. Tijd om Fort Oranje te sluiten.' ],
    pubDate: [ 'Fri, 09 Jun 2017 18:35:18 +0200' ],
    guid: [ [Object] ] },
  { title: [ 'Massale examenfraude in China (2014)' ],
    link: [ 'http://nos.nl/l/2001167' ],
    description: [ 'Een goed voorbeeld van de technische snufjes die spiekende examenkandidaten in China gebruiken.' ],
    pubDate: [ 'Fri, 09 Jun 2017 17:07:24 +0200' ],
    guid: [ [Object] ] },
  { title: [ 'Juwelier zet overval in scène' ],
    link: [ 'http://nos.nl/l/2177410' ],
    description: [ 'Drie overvallers waren opgepakt, de verzekering had al een deel van de schade uitgekeerd. Nu heeft de handelaar toegegeven dat hij de overval zelf heeft gepland.' ],
    pubDate: [ 'Fri, 09 Jun 2017 13:35:25 +0200' ],
    guid: [ [Object] ] } ]

JS:

var json = JSON.stringify(data, null, 2);

  var obj = JSON.parse(json.toString());
  var objects1 = obj.rss.channel;

  var objects2 = objects1[0].item;

  console.log(objects2);

使用此代码,我获得了一个键的值:

    function getValue(key, array) {
         for (var el in array) {
             if (array[el].hasOwnProperty(key)) {   
                 return array[el][key];
             }
         }
    }
  var title = getValue("title", objects2).toString();

title.replace("['", "").replace("']", "");

console.log(title);

感谢。

1 个答案:

答案 0 :(得分:0)

我想你可能会过度思考这个;没有必要继续重新解析和字符串化相同的东西。解析一次,然后将其作为数据对象使用;从那时起,你可以忘记它曾经是JSON。

如果您将解析后的JSON设为data

,则此方法有效
data.forEach(function(x) {
  console.log(x.title[0]);
});

(JSON包含许多不必要的单元素数组;如果可以,请考虑将它们更改为简单字符串。)