Por que esse JSON não é válido?

Eu tenho tentado, mas não consegui descobrir por que esse JSON é inválido (quando eu o coloco em www.jsonlint.com) Alguém pode ajudar? Aqui está o 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
adicionado
Visualizações: 1
Não vejo que seja inválido aqui
adicionado o autor Fahim Parkar, fonte
@UmairKhanJadoon: Ainda diz que o VALID JSON depois de copiar aqui
adicionado o autor Fahim Parkar, fonte
@UmairKhanJadoon: Quando você acessar a URL como " syedmujahidali.com/ilets/retrive.php" ;, como você está exibindo JSON String? Você está fazendo echo & json_encode ()?
adicionado o autor Fahim Parkar, fonte
O mesmo para mim. Você está tendo um problema específico para analisar isso por meio de qualquer uma das APIs JSON?
adicionado o autor verisimilitude, fonte
@UmairKhanJadoon, não selecione o espaço antes da abertura [. É um JSON válido. É claro que você notou que esse script .php retorna JSON dentro do HTML? Então, se você tentar analisar diretamente a resposta deste script .PHP, bem, isso está longe de ser algo que se assemelha ao JSON.
adicionado o autor Darin Dimitrov, fonte
Ok, isso é estranho. JSON é gerado aqui: syedmujahidali.com/ilets/retrive.php Copie-o aqui no JSONlint e diz inválido. E quando eu copio/colei JSON daqui para stackoverflow e copiei/colei de stackoverflow para JSONlink, então ele diz inválido.
adicionado o autor Umair Khan Jadoon, fonte
@DarinDimitrov Oh! Muito obrigado! Eu só notei que está dentro do HTML. Me bobo.
adicionado o autor Umair Khan Jadoon, fonte
Eu copiei e colei sua amostra no JSONlint e ela diz 'Valid JSON'
adicionado o autor Jan Doggen, fonte
Parece validar para mim no JSONlint.com
adicionado o autor Liyan Chang, fonte
JSONLint diz que é válido.
adicionado o autor Filburt, fonte
Talvez não haja problema, mas alguns problemas com o marcador UTF?
adicionado o autor Vladislav Bauer, fonte
O mesmo aqui, o JSONViewer no notepad ++ diz que é válido
adicionado o autor randomUser56789, fonte

2 Respostas

O JSON mostrado na sua pergunta é válido. Por outro lado, o script que você mencionou em sua seção de comentários ( http://www.syedmujahidali.com/ilets/retrive.php ) retorna HTML, não JSON, portanto, se você tentar analisar o resultado de esse script com um analisador JSON obviamente falhará. Veja como a resposta parece:

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

Ok, isso é estranho. JSON é gerado aqui: syedmujahidali.com/ilets/retrive.php Copie-o aqui em JSONlint e ele diz inválido.

Olhando apenas para o texto exibido da resposta daquela página (veja a resposta de Darin por que eu faço essa distinção), o problema é que sua resposta é aberta com uma BOM . A lista de materiais torna o JSON inválido. Eu fui a esse link e fiz um select all e copiei, colei no jsonlint.com e recebi o erro "token inválido" que você está recebendo. Então colei no vim, e vim me mostrou o FE FF no começo do texto.

Então a correção seria descobrir por que essa página do PHP começa com uma BOM e conserta isso. Você não precisa de um BOM com UTF-8.

0
adicionado
@DarinDimitrov: Certo, se ele tentou processar a resposta completa da página diretamente. Mas eu assumi que ele quis dizer o texto que retornou, que tem uma lista de materiais nele. Você pode querer postar o aspecto HTML como uma resposta. Edit : Ah, você tem. :-) +1
adicionado o autor T.J. Crowder, fonte
Qual BOM? Este script PHP retorna HTML, não JSON. Se o OP tentar analisar diretamente a resposta deste script PHP, ele falhará porque o script não retorna JSON como todos.
adicionado o autor Darin Dimitrov, fonte