2016-05-12 4 views
-2

Ich benutze derzeit eine Spinne, um durch Reddit zu kriechen und mir Links und Titel im JSON-Format zur Verfügung zu stellen. Wenn jedoch die JSON-Datei der Daten erstellt wird, wird als einzelner Arrays gespeichert, wie hier gezeigt:Wie kann ich Informationen aus Json-Daten in einem Format abrufen, in dem fast alles als Array gespeichert ist?

[{"url": ["http://i.imgur.com/1Pw3ehZ.jpg"], "title": ["Sunset in Trinidad, CA", "bungholesex"]}, 
{"url": ["http://i.imgur.com/neQiFcf.jpg"], "title": ["Humboldt Bay, Eureka California", "bungholesex"]}, 
{"url": ["http://imgur.com/dxKHGLV"], "title": ["Crater Lake, Oregon in April", "CausticRain11"]}, 
{"url": ["http://imgur.com/RPv475F"], "title": ["South Dakota is seriously beautiful.", "ratt1601"]}, 
{"url": ["http://imgur.com/oH1u7nk"], "title": ["The view outside my back door. Virginia is alright, I guess...", "toowhitetofail"]}, 

Jedes Mal, wenn ich gehe zum Abrufen und Echo der konvertierten Daten mit json_decoder erhalte ich eine Mitteilung sagen „Array String-Konvertierung“, aber Es werden keine Daten angezeigt.

+0

Sie möchten diesen JSON in einen anderen verwandeln? Als welches Ergebnisformat möchten Sie? – Andrew

+0

Nicht ein anderes Format an sich, sondern mehr das Editieren dieser Daten, damit die Namen anstelle von Arrays Werte enthalten, wenn das sinnvoll ist. – Izzino

+0

'{" url ":" http://i.imgur.com/1Pw3ehZ.jpg "," titel ":" Sonnenuntergang in Trinidad, CA, springer "}' Willst du so etwas? Alle Elemente im Array werden zu einer Zeichenfolge verkettet. – Andrew

Antwort

0

diesen Code Versuchen:

$data = '[{"url": ["http://i.imgur.com/1Pw3ehZ.jpg"], "title": ["Sunset in Trinidad, CA", "bungholesex"]}, 
{"url": ["http://i.imgur.com/neQiFcf.jpg"], "title": ["Humboldt Bay, Eureka California", "bungholesex"]}, 
{"url": ["http://imgur.com/dxKHGLV"], "title": ["Crater Lake, Oregon in April", "CausticRain11"]}, 
{"url": ["http://imgur.com/RPv475F"], "title": ["South Dakota is seriously beautiful.", "ratt1601"]}, 
{"url": ["http://imgur.com/oH1u7nk"], "title": ["The view outside my back door. Virginia is alright, I guess...", "toowhitetofail"]}]'; 

$array = json_decode($data, true); 
foreach ($array as &$item) { 
    $item['url'] = $item['url'][0]; 
    $item['title'] = implode(', ', $item['title']); 
} 
echo json_encode($array); 

Ich verwende erste Array-Element von url, weil es ist in Ihrem Beispiel immer single. Und es macht keinen Sinn, URLs zu verketten - das Ergebnis ist keine gültige URL. Aber wenn Sie möchten, können URLs wie title verkettet werden.

Ergebnis sieht wie folgt aus:

[ 
    { 
    "url": "http://i.imgur.com/1Pw3ehZ.jpg", 
    "title": "Sunset in Trinidad, CA, bungholesex" 
    }, 
    { 
    "url": "http://i.imgur.com/neQiFcf.jpg", 
    "title": "Humboldt Bay, Eureka California, bungholesex" 
    }, 
    { 
    "url": "http://imgur.com/dxKHGLV", 
    "title": "Crater Lake, Oregon in April, CausticRain11" 
    }, 
    { 
    "url": "http://imgur.com/RPv475F", 
    "title": "South Dakota is seriously beautiful., ratt1601" 
    }, 
    { 
    "url": "http://imgur.com/oH1u7nk", 
    "title": "The view outside my back door. Virginia is alright, I guess..., toowhitetofail" 
    } 
] 

Sie können es here.

-1

Ihr JSON oben nicht gültig. Am Ende deines JSons solltest du entfernen und] hinzufügen. U kann es mit Json validaor hier überprüfen.

http://jsonlint.com/

[{ 
    "url": ["http://i.imgur.com/1Pw3ehZ.jpg"], 
    "title": ["Sunset in Trinidad, CA", "bungholesex"] 
}, { 
    "url": ["http://i.imgur.com/neQiFcf.jpg"], 
    "title": ["Humboldt Bay, Eureka California", "bungholesex"] 
}, { 
    "url": ["http://imgur.com/dxKHGLV"], 
    "title": ["Crater Lake, Oregon in April", "CausticRain11"] 
}, { 
    "url": ["http://imgur.com/RPv475F"], 
    "title": ["South Dakota is seriously beautiful.", "ratt1601"] 
}, { 
    "url": ["http://imgur.com/oH1u7nk"], 
    "title": ["The view outside my back door. Virginia is alright, I guess...", "toowhitetofail"] 
}] 
+0

Dies ist nur ein Teil des Codes. Der vollständige JSON hat Tausende von Zeilen. – Izzino

-1

Sie folgendes Format für Ihre Anforderung können

{ 
    "records": [{ 
     "url": "http://i.imgur.com/1Pw3ehZ.jpg", 
     "title": ["Sunset in Trinidad, CA", 
      "bungholesex" 
     ] 
    }, { 
     "url": "http://i.imgur.com/neQiFcf.jpg", 
     "title": ["Humboldt Bay, Eureka California", 
      "bungholesex" 
     ] 
    }, { 
     "url": "http://imgur.com/dxKHGLV", 
     "title": ["Crater Lake, Oregon in April", 
      "CausticRain11" 
     ] 
    }, { 
     "url": "http://imgur.com/RPv475F", 
     "title": ["South Dakota is seriously beautiful.", 
      "ratt1601" 
     ] 
    }, { 
     "url": "http://imgur.com/oH1u7nk", 
     "title": ["The view outside my back door. Virginia is alright, I guess...", 
      "toowhitetofail" 
     ] 
    }] 
} 
Verwandte Themen