Thread Problem mit JSON<->einer API, Ausgabe will nicht (20 answers)
Opened by SCG at 2011-07-14 19:43

SCG
 2011-07-14 19:43
#150383 #150383
User since
2011-07-14
9 Artikel
BenutzerIn
[default_avatar]
Hallo

Habe mich erst neu registriert da ich auf der Suche nach Hilfe bin. Hoffe das mir hier jemand helfen kann.
Ich habe von Perl keine große Ahnung, eher PHP und mache wohl deshalb alles falsch.

Mein Problem ist folgendes...

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#!/usr/bin/perl -w

use LWP;
use JSON;
use strict;
use warnings; 
use Date::Calc qw(:all);
use LWP::Simple;

sub get_lautfm_playing($)
{

  my $station = shift;
  my $url = get ("http://api.laut.fm/station/".$station."/current_song");

  my $json_obj = decode_json $url;
  $$json_obj{'artist'} = 'unbekannt' if !defined($$json_obj{'artist'});
  $$json_obj{'title'} = 'unbekannt' if !defined($$json_obj{'title'});


    # Rückgabe von Artist und Title
    if($$json_obj{'title'}=~m/(.*?)\s*\((.*)\)\s*(\d+)/)
    {

      # Artist, Titel, Version, Jahr
     ($$json_obj{'artist'},$1,$2,$3);
    }
    elsif($$json_obj{'title'}=~m/(.*?)\s*\((.*)\)/)
    {

      # Artist, Titel, Version, Jahr = ''
      ($$json_obj{'artist'},$1,$2,'');
    }
    else
    {
      # Artist, Titel, Version = '', Jahr = ''
      ($$json_obj{'artist'},$$json_obj{'title'},'','');
    }
}


Als Artist bekomme ich nur einen Hash-Wert als Ausgabe und weiß einfach nicht warum. Die Ausgabe des title ist dagegen ok.

Der var_Dump von $json_obj
Code: (dl )
string(304) "{"id":943936,"title":"Body Heat (12-Inch) 1978","album":"Disco & High-Energy Tracks","genre":"Disco","releaseyear":"1978","created_at":"2011-07-11 14:10:42 +0200","started_at":"2011-07-14 19:30:33 +0200","length":309,"ends_at":"2011-07-14 19:35:42 +0200","type":"song","artist":{"name":"Alicia Bridges"}}" 


Ich brauche die Ausgabe des Namens, nur sind leider alle meine Versuche gescheitert.
Wenn ich 'name' angeben bekomme ich garkeine Ausgebe, mit artist->name
wirft Perl Fehler. Ich weiß einfach nicht wie ich das Problem lösen kann.
Mit PHP ist das garkein Problem, doch ich benutze Perl nur für diese Sache weils sein muss, darum wäre es blöd jetzt nur dafür extra sich intensiv mit Perl zu beschäftigen, hoffe deshalb jemand kann mir hier helfen, auch wenn ich kein Profi bin. Danke.

p.S. dies ist nicht der ganze Code, es geht weiter, nur dieser Block macht mir Probleme alles andere is ok.
Last edited: 2011-07-16 18:33:55 +0200 (CEST)

View full thread Problem mit JSON<->einer API, Ausgabe will nicht