Antworten auf deine Fragen:
Neues Thema erstellen

Antworten zum Thema „JSON Array für RSS-Feed in PHP ausgeben“

SWFP

SWFP Mitglied

Hi,
ich habe diesen RSS-Feed in JSON erstellt:

Code:
{"channel":[
	{
		"title": "DSP RSS-Feed",
		"image":[
			{
				"url": "Bilder/RSS_Logo.png"
			} ],
		"link": "http://bunte-ecke.bplaced.net/Ecken/podcast/Flash%20Audio%20Player/rss.xml",
		"description": "Die neusten Infos des DPS hier ganz exklusiv",
		"language": "de-de",
		"item":[
			{
				"title": "DSP bekommt neue Website",
				"description": "Zu Ende der Saison wird der DSP eine neue Seite haben, auf der ihr künftig die Podcasts und weitere interessante Informationen finden könnt.",
				"link": "http://bunte-ecke.bplaced.net/Ecken/podcast/Flash%20Audio%20Player/index II.php?content=rss&feed=neue_website",
				"pubDate": "Fri, 01 Mar 2013 15:21:36 GMT"
			} ],
		"item":[
			{
				"title": "DSP hat RSS-Feed<",
				"description": "Zur offiziellen Eröffnung der Website gibt es gleich für euch einen RSS-Feed obendrauf!",
				"link": "http://bunte-ecke.bplaced.net/Ecken/podcast/Flash%20Audio%20Player/index II.php?content=rss&feed=neuer_feed",
				"pubDate": "Mon, 16 Jul 2007 15:21:36 GMT",
			} ],
	}
]}

und habe schon auf tausend verschiedene Arten versucht, es in PHP auszugeben:

PHP:
<?php
$jsonfile = file_get_contents('rss.json');
$jsonarray = json_decode($jsonfile);

//Test
print_r($jsonarray);

echo "<h1>".$jsonarray['title'][1]."</h1>";
echo $jsonarray['title'];
echo $jsonarray->title;

echo "<h1>".$jsonarray['title'][1]."</h1>";
echo $jsonarray['channel']['title'][1];
echo $jsonarray->channel->title[1];
echo $jsonarray->channel['title'][1];

echo $jsonarray->{'title'};
echo $jsonarray->{'channel'}{'title'};
?>
Mit und ohne die [1], mit und ohne das channel und in allen erdenklichen Schreibweisen.

Was kann ich tun bzw. Was mache ich falsch?
 

Duddle

Posting-Frequenz: 14µHz

AW: JSON Array für RSS-Feed in PHP ausgeben

Was mache ich falsch?
Einiges.

Erstens wird das JSON schon falsch eingelesen, weil du überflüssige Kommas hast. Wenn es dann noch nicht geht, ist das Dokument im falschen Zeichensatz - nur UTF-8 wird korrekt gelesen.

Anschliessend hast du ein Objekt, also musst du per Pfeil-Notation auf die Attribute zugreifen (oder json_decode() direkt ein Array erzeugen lassen). Das title-Attribut ist auch kein Array, also ist die [1] völlig daneben. Das channel-Attribut ist wiederum ein Array, dieses braucht also einen Index. Ausserdem sind Arrays 0-indiziert.


Duddle
 

SWFP

SWFP Mitglied

AW: JSON Array für RSS-Feed in PHP ausgeben

Danke Duddle. Ich hätte nicht gedacht, dass ich so viel falsch mache.

Das heißt also, alle Kommata raus?

SWFP
 

SWFP

SWFP Mitglied

AW: JSON Array für RSS-Feed in PHP ausgeben

An welchen Stellen sind sie denn überflüssig?

Wenn ich
Code:
json_decode($jsonfile, assoc=true)
eingebe, ändert sich nichts.
 

Myhar

Hat es drauf

AW: JSON Array für RSS-Feed in PHP ausgeben

Man nehme dein JSON her und suche nach Kommas, die am Ende einer Liste stehen. Da fällt einem unter anderem folgendes auf:
HTML:
"pubDate": "Mon, 16 Jul 2007 15:21:36 GMT",
Die übrigen solcher Fehler solltest du jetzt hoffentlich selbst finden können ;-)
Falls nicht, verwende einen Editor mit Syntax Highlighting für JSON, die sollten doch hoffentlich solche Fehler aufzeigen können.
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Statistik des Forums

Themen
175.155
Beiträge
2.581.856
Mitglieder
67.222
Neuestes Mitglied
Gregor
Oben