Como deserializar esse JSON?

7 respostas
Valter_Henrique

Galera,
estou trabalhando na API do Flickr, estou recendo as respostas via JSON, a resposta é nessa forma :

<photos page="2" pages="89" perpage="10" total="881">
	<photo id="2636" owner="[telefone removido]@N01" 
		secret="a123456" server="2" title="test_04"
		ispublic="1" isfriend="0" isfamily="0" />
	<photo id="2635" owner="[telefone removido]@N01"
		secret="b123456" server="2" title="test_03"
		ispublic="0" isfriend="1" isfamily="1" />
	<photo id="2633" owner="[telefone removido]@N01"
		secret="c123456" server="2" title="test_01"
		ispublic="1" isfriend="0" isfamily="0" />
	<photo id="2610" owner="[telefone removido]@N01"
		secret="d123456" server="2" title="00_tall"
		ispublic="1" isfriend="0" isfamily="0" />
</photos>

Estou utilizando o FlexJSON para deserializar, já que vi recomendarem ele aqui.
Criei duas classes para receber o JSON:

public class photo {
    private String id;
    private String owner;
    private String secret;
    private String server;
    private String title;
    private String ispublic;
    private String isfriend;
    private String isfamily;

    // com os respectivos, get e setters tbm
public class photos {
    private String page;
    private String pages;
    private String perpage;
    private String total;
    private List<photo> photo;

Então para deserializar eu faço :

photos p = new JSONDeserializer<photos>().deserialize( texto ); // texto contém a resposta, em string

Mas recebo esse erro:

Agora não sei mais o que fazer,rs.
Estou pesquisando sobre a solução, mas até agora nada.

Agora vou dormir pois já estou trabalhando nessa API faz 2 dias seguidos,rsrs.

Abraços GUJ.

7 Respostas

davidbuzatto

Os dados que você passou estão formatados em XML não em JSON.

[]´s

Valter_Henrique

davidbuzatto:
Os dados que você passou estão formatados em XML não em JSON.

[]´s


Não david, eu só mostrei assim em xml para ficar mais fácil de ver o formato, mas ele esta em JSON sim, ele vem assim na verdade:

Eu não coloquei pois achei que vocês pudessem achar ruim, ou algo assim,rs.

Então, cara é isso que esta retornando para mim, mas não consigo deserializar.
O que faço?

davidbuzatto

Uai, achar ruim pq? Hehe não entendi.
Enfim, acho que o erro não está te mostrando o que está acontecendo de verdade.
O JSON que você passou não é válido.

Esse aqui seria válido:

{ "photos":{ "page":1, "pages":10, "perpage":100, "total":1000, "photo":[{ "id":"[telefone removido]", "owner":"9390707@N07", "secret":"7dd4392ec1", "server":"1046", "farm":2, "title":"251", "ispublic":1, "isfriend":0, "isfamily":0 }, { outros objetos aqui }] }, "stat":"ok" }
Estou omitindo os outros objetos do array “photo” e note que formatei o JSON para ficar mais fácil de ler.
Note que nos dados que você passou, vem uma chamada a uma função chamada jsonFlickrApi.

[]´s

Valter_Henrique

davidbuzatto:
Uai, achar ruim pq? Hehe não entendi.
Enfim, acho que o erro não está te mostrando o que está acontecendo de verdade.
O JSON que você passou não é válido.

Esse aqui seria válido:

{ "photos":{ "page":1, "pages":10, "perpage":100, "total":1000, "photo":[{ "id":"[telefone removido]", "owner":"9390707@N07", "secret":"7dd4392ec1", "server":"1046", "farm":2, "title":"251", "ispublic":1, "isfriend":0, "isfamily":0 }, { outros objetos aqui }] }, "stat":"ok" }
Estou omitindo os outros objetos do array “photo” e note que formatei o JSON para ficar mais fácil de ler.
Note que nos dados que você passou, vem uma chamada a uma função chamada jsonFlickrApi.

[]´s


Então cara, eu não consigo modelar essa string que volta do Flickr, eu só consigo a resposta, eu queria deserializar essa string, entendeu?

davidbuzatto

Entendi. Você leu o que eu escrevi? Que ta vindo coisa errada junto?

Valter_Henrique

Então David, pelo o que eu entendi eu deveria formatar a string que volta e deixar neste formato que você colocou, é isso?

davidbuzatto

Sua String já está formatada, falta tirar o “jsonFlickrApi(” do início dela e o “)” do final.

[]´s

Criado 7 de novembro de 2010
Ultima resposta 8 de nov. de 2010
Respostas 7
Participantes 2