Grundsätzlich kann mir jemand sagen, wie man die Daten von dieser URL parsen? http://www.flickr.com/services/feeds/photos_public.gne?tags=punctuation,atsign&format=json
Sie sind nicht zu Parse bedeuten diese. Das ist eine alte Schule JSONP Antwort. Auf die eine oder andere Weise muss es evaluiert werden. JSONP wird historisch verwendet, um CORS (Cross-Origin-Ressource teilen), wo richtige CORS ist nicht möglich.
Sie müssen jsonFlickrFeed
in Ihrem Programm definieren und dann
<script type="application/javascript"
src="http://www.flickr.com/services/feeds/photos_public.gne?tags=punctuation,atsign&format=json">
</script>
Dies bewirkt, dass jsonFlickrFeed
mit dem Datenobjekt aufgerufen werden.
Hinweis: der Begriff JSON
hier, weil jsonFlickrFeed
missbraucht wird, ist eigentlich ein JavaScript-Objekt zu akzeptieren; kein JSON Zeichenfolge.
JSONP-Callbacks: Normalerweise können Sie den Namen des Callbacks konfigurieren, indem Sie &callback=foo
an die JSONP-Anforderung übergeben. Ich habe das mit der Flickr-URL versucht, die Sie angegeben haben, aber ihre API funktioniert irgendwie anders oder unterstützt keine Callbacks mit dem Namen eines Benutzers. Überprüfen Sie ihre API und sehen Sie, ob Sie einen Rückruf nach einer vernünftigen Namenskonvention angeben können.
Hier ist eine voll funktionsfähige Demo, die Ihnen zeigt, wie es funktioniert. Wir werden 3 Teile der Antwortdaten auf die Konsole schreiben; title
, link
und modified
. Natürlich können Sie mit den Daten machen, was Sie wollen.
<script>
function jsonFlickrFeed (data) {
console.log("title", data.title)
console.log("link", data.link)
console.log("modified", data.modified)
}
</script>
<script type="application/javascript"
src="http://www.flickr.com/services/feeds/photos_public.gne?tags=punctuation,atsign&format=json">
</script>
Hier ist eine weitere Demo, die die Bilder in dem items
Attribute zeigt
body {
display: flex;
flex-direction: row;
}
img {
display: flex;
max-height: 50px;
}
<script>
function makeImage (src) {
return Object.assign(document.createElement('img'), {src})
}
function jsonFlickrFeed (data) {
for (let {media: {m}} of data.items)
document.body.appendChild(makeImage(m))
}
</script>
<script type="application/javascript"
src="http://www.flickr.com/services/feeds/photos_public.gne?tags=punctuation,atsign&format=json">
</script>
In jedem Beispiel beachten Sie, dass ich nicht von Hand habe zu analysieren etwas. Es gibt kein JSON hier, also gibt es nichts zu analysieren.
Was passiert nachdem der Inhalt in 'jsonFlickrFeed (..)' geparst wurde? – Searching
Grundsätzlich kann mir jemand sagen, wie man die Daten von dieser URL analysiert? http://www.flickr.com/services/feeds/photos_public.gne?tags=punctuation,atsign&format=json –
@DeepakBandi Sie haben es mit einer JSONP-Antwort zu tun. Bitte lesen Sie meine Antwort zur Orientierung. Jeder, der Ihnen sagt, dass Sie 'JSON.parse' verwenden sollen, tut Ihnen weh. – naomik