Warum ist dieser JSON nicht gültig?

Ich habe versucht, aber konnte nicht herausfinden, warum dieses JSON ungültig ist (wenn ich es auf www.jsonlint.com setzte) Kann jemand helfen? Hier ist der JSON:

    [
    {
        "title": "COFA NEW SOUTH WALES ",
        "img": "images/uni/cofa.png",
        "desc": "One of the Best University",
        "url": "http://127.0.0.1:8888/ilets/app/col.html"
    },
    {
        "title": "MIDDLESEX UNIVERSITY ",
        "img": "images/1339977840.jpg",
        "desc": "Well this is Testi",
        "url": "http://127.0.0.1:8888/ilets/app/MIDDLESEX UNIVERSITY.html"
    },
    {
        "title": "ROYAL COLLEGE OF ARTS ",
        "img": "images/uni/1339978144.png",
        "desc": "This is One of the best University",
        "url": "http://127.0.0.1:8888/ilets/app/ROYAL COLLEGE OF ARTS.html"
    },
    {
        "title": "UNIVERSITY OF SCOTLAND ",
        "img": "images/uni/1339996882.gif",
        "desc": "SCOTLAND OWNS THIS UNIVERSITY",
        "url": "http://127.0.0.1:8888/ilets/app/UNIVERSITY OF SCOTLAND.html"
    }
]
1
hinzugefügt
Ansichten: 1
Ich sehe nicht, dass es hier ungültig ist
hinzugefügt der Autor Fahim Parkar, Quelle
@UmairKhanJadoon: Es heißt immer noch gültig JSON nach dem Kopieren von hier
hinzugefügt der Autor Fahim Parkar, Quelle
@UmairKhanJadoon: Wenn Sie URL als " syedmujahidali.com/ilets/retrive.php" drücken ;, wie wird JSON String angezeigt? Machst du echo & json_encode ()?
hinzugefügt der Autor Fahim Parkar, Quelle
Auch für mich. Haben Sie ein Problem, insbesondere bei der Analyse durch JSON APIs?
hinzugefügt der Autor verisimilitude, Quelle
@UmairKhanJadoon, wählen Sie nicht das Leerzeichen vor dem Öffnen [. Es ist gültiges JSON. Haben Sie bemerkt, dass dieses .php-Skript JSON in HTML zurückgibt? Also, wenn Sie versuchen, direkt die Antwort von diesem .PHP Skript zu analysieren, na ja, das ist weit weg von etwas, das auch eng JSON ähnelt.
hinzugefügt der Autor Darin Dimitrov, Quelle
Ok, das ist komisch. JSON wird hier generiert: syedmujahidali.com/ilets/retrive.php Copypaste es von hier aus auf JSONlint und es sagt ungültig. Und wenn ich JSON von hier nach stackoverflow kopiere/einfüge und von stackoverflow in JSONlink kopiere/einfüge, dann sagt es ungültig.
hinzugefügt der Autor Umair Khan Jadoon, Quelle
@DarinDimitrov Oh! Danke vielmals! Ich habe gerade bemerkt, dass es in HTML ist. Wie dumm von mir.
hinzugefügt der Autor Umair Khan Jadoon, Quelle
Ich habe Ihr Beispiel in JSONlint kopiert und eingefügt und es heißt "Valid JSON"
hinzugefügt der Autor Jan Doggen, Quelle
Es scheint für mich auf JSONlint.com gültig zu sein
hinzugefügt der Autor Liyan Chang, Quelle
JSONLint sagt, dass es gültig ist.
hinzugefügt der Autor Filburt, Quelle
Vielleicht gibt es kein Problem, aber einige Probleme mit UTF-Marker?
hinzugefügt der Autor Vladislav Bauer, Quelle
Das gleiche hier, JSONViewer in Notepad ++ sagt, es ist gültig
hinzugefügt der Autor randomUser56789, Quelle

2 Antworten

Der JSON, den Sie in Ihrer Frage gezeigt haben, ist gültig. Auf der anderen Seite gibt das Skript, das Sie in Ihrem Kommentarabschnitt erwähnt haben ( http://www.syedmujahidali.com/ilets/retrive.php ) HTML zurück, nicht JSON, wenn Sie also versuchen, das Ergebnis zu analysieren Dieses Skript mit einem JSON-Parser wird offensichtlich fehlschlagen. So sieht die Antwort aus:

<head>

<meta charset="UTF-8"></head><body onload="abc()">
<script>
function abc(){
document.getElementById('copy').innerHTML = document.getElementById('content').innerHTML;
var ab=  document.getElementById('content').innerHTML;
}
</script>

<div id="content" style="display:none;">


[{"title":"COFA NEW SOUTH WALES "  ,"img":"images/uni/cofa.png","desc":"One of the Best University","url":"http://127.0.0.1:8888/ilets/app/col.html"},
{"title":"MIDDLESEX UNIVERSITY " ,"img":"images/1339977840.jpg","desc":"Well this is Testi","url":"http://127.0.0.1:8888/ilets/app/MIDDLESEX UNIVERSITY.html"},
{"title":"ROYAL COLLEGE OF ARTS " ,"img":"images/uni/1339978144.png","desc":"This is One of the best University","url":"http://127.0.0.1:8888/ilets/app/ROYAL COLLEGE OF ARTS.html"},
{"title":"UNIVERSITY OF SCOTLAND " ,"img":"images/uni/1339996882.gif","desc":"SCOTLAND OWNS THIS UNIVERSITY","url":"http://127.0.0.1:8888/ilets/app/UNIVERSITY OF SCOTLAND.html"}]</div> <div id="copy"> </div> </body>
2
hinzugefügt

Ok, das ist seltsam. JSON wird hier erzeugt: syedmujahidali.com/ilets/retrive.php Copypaste es von hier auf JSONlint und es sagt ungültig.

Betrachte nur den angezeigten Text der Antwort von dieser Seite (siehe Darin's Antwort für warum ich diese Unterscheidung mache), das Problem ist, dass Ihre Antwort mit einer Stückliste beginnt. Die Stückliste macht den JSON ungültig. Ich ging zu diesem Link und machte eine Auswahl alle und kopieren, dann klebte es in jsonlint.com und bekam den "ungültigen Token" Fehler, den Sie bekommen. Also habe ich es in vim eingefügt, und vim zeigte mir die FE FF am Anfang des Textes.

Die Lösung wäre, herauszufinden, warum diese PHP-Seite mit einer Stückliste beginnt und das Problem behebt. Sie benötigen keine Stückliste mit UTF-8.

0
hinzugefügt
@DarinDimitrov: Richtig, wenn er versucht hat, die vollständige Antwort von dieser Seite direkt zu verarbeiten. Aber ich nahm an, dass er den Text meinte, den er zurückgab, der eine Stückliste enthält. Vielleicht möchten Sie den HTML-Aspekt als Antwort veröffentlichen. Bearbeiten : Ah, du hast. :-) +1
hinzugefügt der Autor T.J. Crowder, Quelle
Welche Stückliste? Dieses PHP-Skript gibt HTML und nicht JSON zurück. Wenn das OP versucht, die Antwort von diesem PHP-Skript direkt zu analysieren, wird er fehlschlagen, weil das Skript JSON nicht als alles zurückgibt.
hinzugefügt der Autor Darin Dimitrov, Quelle