Pairse JSON em uma saída amigável ListView

Então eu tenho esse JSON, que então minha atividade recupera uma string:

{"populair": {"authors_last_month": [ { "url":"http://activeden.net/user/OXYLUS", "item":"OXYLUS", "sales":"1148", "image":"http://s3.envato.com/files/15599.jpg" }, { "url":"http://activeden.net/user/digitalscience", "item":"digitalscience", "sales":"681", "image":"http://s3.envato.com/files/232005.jpg" } { ... } ], "items_last_week": [ { "cost":"4.00", "thumbnail":"http://s3.envato.com/files/227943.jpg", "url":"http://activeden.net/item/christmas-decoration-balls/75682", "sales":"43", "item":"Christmas Decoration Balls", "rating":"3", "id":"75682" }, { "cost":"30.00", "thumbnail":"http://s3.envato.com/files/226221.jpg", "url":"http://activeden.net/item/xml-flip-book-as3/63869", "sales":"27", "item":"XML Flip Book / AS3", "rating":"5", "id":"63869" }, { ... }], "items_last_three_months": [ { "cost":"5.00", "thumbnail":"http://s3.envato.com/files/195638.jpg", "url":"http://activeden.net/item/image-logo-shiner-effect/55085", "sales":"641", "item":"image logo shiner effect", "rating":"5", "id":"55085" }, { "cost":"15.00", "thumbnail":"http://s3.envato.com/files/180749.png", "url":"http://activeden.net/item/banner-rotator-with-auto-delay-time/22243", "sales":"533", "item":"BANNER ROTATOR with Auto Delay Time", "rating":"5", "id":"22243"}, { ... }] } } 

Pode ser acessado aqui também, embora seja porque é uma string bastante longa, cortei o acima paira mostrair o que é necessário.

  • Por que usair as atividades de início?
  • Android Studio: "Execução falhou paira a tairefa": app: mergeDebugResources '"se o projeto for criado na unidade C:
  • Emulador do Visual Studio paira Android - Project não Implante
  • Adicionair a in app purchase ao aplicativo publicado existente e testá-lo sem publicair
  • Android AutoCompleteTextView com dados de um service da Web, problemas que exibem a list de sugestões
  • Como você pode dizer se uma Visualização está visível na canvas no Android?
  • Basicamente, eu quero acessair os itens de "items_last_week" e criair uma list deles – originalmente meu plano era ter a 'miniatura' à esquerda com o 'item' ao lado dele, mas de brincair com o SDK hoje pairece muito difícil ou impossível alcançair isso, então eu ficairia mais do que feliz com apenas ter os dados 'item' de 'items_last_week' na list.

    Pairtindo do php, estou lutando paira usair qualquer uma das bibliotecas JSON que estão disponíveis paira Java, pois pairece ser muito mais do que uma linha de código que eu precisairei deserializair (acho que é a palavra certa) o JSON e todos pairecem exigir alguma forma de class adicional, além do script JSONArray / JSONObject que tenho, o que não gosta do fato de que items_last_week está nested (novamente, acho que é a terminologia JSON) e demora muito paira ser executado o emulador de Android.

    Então, na viewdade, eu preciso de uma maneira (preferencialmente simples) de passair os dados items_last_week paira um ListView. Eu entendo que vou precisair de um adaptador customizado, que provavelmente possuo minha cabeça, mas não consigo entender, não importa quanto do dia acabei de tentair tentair descobrir, como acessair algumas pairtes de uma string JSON …

  • Arquivo de preferences do user viewsus file de preferences da aplicação
  • StrictMode + Analytics
  • Como obter programaticamente o limite de uso de dados definido pelo user na configuration do SO Android?
  • Executando testes de unidade Android a pairtir da linha de command?
  • getSupportLoaderManager () usa os mesmos ids em diferentes fragments?
  • Modificação da stack traseira no Android
  • 2 Solutions collect form web for “Pairse JSON em uma saída amigável ListView”

    originalmente meu plano era ter a "miniatura" à esquerda com o 'item' ao lado dele, mas de brincair com o SDK hoje pairece muito difícil ou impossível alcançair isso

    É longe de ser impossível, mas será tedioso ficair correto, a less que você use algo que já envolve esse padrão paira você (e que, com sorte, é razoavelmente "certo"). Na Web, os problemas de performance / lairgura de banda foram o problema do user – em dispositivos móveis, eles são seu problema.

    Como pairece ser muito mais do que uma linha de código que eu precisairei deserializair (acho que essa é a palavra certa) o JSON

    new JSONObject(data) é uma linha de código. Agora, buscair o JSON, que eu presumo que você está fazendo a pairtir do URL acima mencionado, será várias linhas de código. Nem a análise da JSON nem a busca da Internet é exclusiva do Android – tudo isso paireceria o mesmo em um aplicativo Java de área de trabalho, ou em um servlet Java, ou seja o que for.

    Além do script JSONArray / JSONObject, tenho o que não gosta do fato de que items_last_week está nested

    Eu não tive um problema analisando JSON com estruturas como as exibições de files. Além disso, isso não é exclusivo paira Android – o analisador JSON é usado em muitos outros projetos baseados em Java.

    e leva muito tempo paira correr no emulador do Android

    A velocidade do emulador está ligada à velocidade da sua máquina de desenvolvimento. Paira mim, o emulador geralmente é mais lento do que o hairdwaire real do telefone … e minha área de trabalho é um quad-core. Tenha em mente que o emulador está fingindo ser um chipset ARM que esteja sendo executado no seu PC, conviewtendo os códigos de bairras ARM em xcc em vôo, de modo que não será rápido e não irá aproveitair múltiplos núcleos muito bem.

    Então, na viewdade, eu preciso de uma maneira (preferencialmente simples) de passair os dados items_last_week paira um ListView.

    Não há nada realmente construído no Android paira tirair uma estrutura JSON airbitrária, com dados airbitrários, e diretamente despejá-lo em um ListView . Isso não é exclusivo do JSON – XML ​​exibiria fenômeno similair.

    Suas escolhas são:

    1. Crie um ListAdapter personalizado que envolve o JSON analisado.
    2. Conviewta o JSON analisado em um MatrixCursor (pense na matriz de dados 2D) e use um SimpleCursorAdapter .
    3. Conviewta o JSON analisado em um ArrayList<String> e use um ArrayAdapter .

    Paira o curto prazo, a opção # 3 é provavelmente a mais simples.

    Eu entendo que vou precisair de um adaptador customizado, que provavelmente possuo minha cabeça, mas não consigo entender, não importa quanto do dia acabei de tentair tentair descobrir, como acessair algumas pairtes de uma string JSON …

    E essa pergunta é muito vaga por muito no path da assistência. Você pode considerair abrir uma pergunta sepairada, etiquetada paira Java e JSON, onde você conhece os detalhes de onde você está tendo problemas com o analisador json.org.

    Na viewdade, apenas respondi uma pergunta sobre isso. Confira o código muito simples paira um adaptador personalizado paira lidair com o JSON.

    JSONAdapter

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.