¿Por qué este JSON no es válido?

Lo he intentado pero no pude entender por qué este JSON no es válido (cuando lo puse en www.jsonlint.com) ¿Alguien puede ayudar? Aquí está el 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
No veo que no sea válido aquí
agregado el autor Fahim Parkar, fuente
@UmairKhanJadoon: Todavía dice JSON VÁLIDO después de copiar de aquí
agregado el autor Fahim Parkar, fuente
@UmairKhanJadoon: cuando aciertas la URL como " syedmujahidali.com/ilets/retrive.php" ;, ¿cómo está visualizando JSON String? ¿Está haciendo echo & json_encode ()?
agregado el autor Fahim Parkar, fuente
Lo mismo para mi. ¿Tienes un problema, especialmente al analizar esto a través de cualquiera de las API de JSON?
agregado el autor verisimilitude, fuente
@UmairKhanJadoon, no seleccione el espacio antes de la apertura [. Es válido JSON. Por supuesto, ¿ha notado que este script .php devuelve JSON dentro de HTML? Entonces, si tratas de analizar directamente la respuesta de este script .PHP, bueno, eso está lejos de ser algo que se asemeja mucho a JSON.
agregado el autor Darin Dimitrov, fuente
Ok, esto es raro JSON se genera aquí: syedmujahidali.com/ilets/retrive.php Copiar desde aquí en JSONlint y dice inválido. Y cuando copio/pegué JSON desde aquí a stackoverflow y copié/pegué de stackoverflow a JSONlink, dice que no es válido.
agregado el autor Umair Khan Jadoon, fuente
@DarinDimitrov ¡Oh! ¡Muchas gracias! Me di cuenta de que está dentro de HTML. Tonto de mí.
agregado el autor Umair Khan Jadoon, fuente
Copié y pegué tu muestra en JSONlint y dice 'Valid JSON'
agregado el autor Jan Doggen, fuente
Parece validarme en JSONlint.com
agregado el autor Liyan Chang, fuente
JSONLint dice que es válido.
agregado el autor Filburt, fuente
Tal vez no hay problema, pero algunos problemas con el marcador UTF?
agregado el autor Vladislav Bauer, fuente
Lo mismo aquí, JSONViewer en Notepad ++ dice que es válido
agregado el autor randomUser56789, fuente

2 Respuestas

El JSON que ha mostrado en su pregunta es válido. Por otro lado, el script que mencionaste en la sección de comentarios ( http://www.syedmujahidali.com/ilets/retrive.php ) devuelve HTML, no JSON, por lo que si intentas analizar el resultado de este script con un analizador JSON obviamente fallará. Así es como se ve la respuesta:

<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
agregado

Ok, esto es extraño. JSON se genera aquí: syedmujahidali.com/ilets/retrive.php Copiar desde aquí en JSONlint y dice no válido.

Solo mirando el texto mostrado de la respuesta de esa página (ver la respuesta de Darin sobre por qué hago esa distinción), el problema es que su respuesta se abre con un lista de materiales . La lista de materiales hace que el JSON no sea válido. Fui a ese enlace e hice una selección de todo y lo copié, luego lo pegué en jsonlint.com y obtuve el error de "token no válido" que está recibiendo. Así que lo pegué en vim, y vim me mostró el FE FF al comienzo del texto.

Entonces la solución sería averiguar por qué esa página PHP comienza con una lista de materiales y arreglar eso. No necesita una lista de materiales con UTF-8.

0
agregado
@DarinDimitrov: Correcto, si trató de procesar la respuesta completa de esa página directamente. Pero asumí que se refería al texto que devolvió, que tiene una lista de materiales en él. Es posible que desee publicar el aspecto HTML como una respuesta. Editar : Ah, tienes. :-) +1
agregado el autor T.J. Crowder, fuente
¿Qué BOM? Este script PHP devuelve HTML, no JSON. Si el OP intenta analizar directamente la respuesta de este script PHP, fallará porque el script no devuelve JSON como todo.
agregado el autor Darin Dimitrov, fuente
JavaScript - Comunidad española
JavaScript - Comunidad española
4 de los participantes

Enlace para invitaciones: https://t.me/joinchat/B2gdShb3y7ojLekmhtDxIw En este grupo hablamos de JavaScript. Partner: es.switch-case.com