Autore Topic: Lettura valori JSON  (Letto 627 volte)

Offline auron86

  • Nuovo arrivato
  • *
  • Post: 45
  • Respect: +1
    • Mostra profilo
Lettura valori JSON
« il: 28 Settembre 2013, 09:33:17 CEST »
0
Salve mi sto trovando davanti a un piccolo problema implementativo, che non riesco a risolvere, nella lettura di un JSON.


Normalmente quando ottengo un json, i valori da leggere, sono formattati nel seguiente modo

Codice (XML): [Seleziona]
[{nome:"Mario",cognome:"Rossi"},
{nome:"Luca",cognome:"De Stefano"}]

e fino a qui tutto ok, ma se invece aggiungessi un ulteriore campo interessi cosi formato

Codice (XML): [Seleziona]
[{nome:"Mario",cognome:"Rossi",interessi:[calcio,moto,film]},
{nome:"Luca",cognome:"De Stefano",interessi:[calcio,viaggi}]


questo come dovrebbe essere letto ?
a occhio mi risulta essere un array ma se provo ad accedere il compilatore esplode, perché non lo riconosce come json, qualcuno potrebbe postarmi 2 righe di codice =)

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Lettura valori JSON
« Risposta #1 il: 28 Settembre 2013, 10:09:04 CEST »
0
Secondo me perchè le stringhe devi metterle tra doppi apici.

Codice: [Seleziona]
[{nome:"Mario",cognome:"Rossi",interessi:["calcio","moto","film"]},
{nome:"Luca",cognome:"De Stefano",interessi:["calcio","viaggi"}]

PS: Se usi Firefox, metti l'addon JSONView, ci puoi fare drag_and_drop dei file JSON, ti dice se è malformato oppure se è correttamente formato ti ci fa navigare con struttura ad albero.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline auron86

  • Nuovo arrivato
  • *
  • Post: 45
  • Respect: +1
    • Mostra profilo
Re:Lettura valori JSON
« Risposta #2 il: 28 Settembre 2013, 10:42:33 CEST »
0
Ignora i doppi apici e la forza dell abitudine i json e corretto, sono stato io a scriverlo male , andando a memoria, il problema e interessi che non so come scorrerlo essendo un array.....

Post unito: 28 Settembre 2013, 10:56:19 CEST
Ecco il json


Codice (XML): [Seleziona]
[{nome:'Mario',cognome:'Rossi',interessi:['calcio','moto','film']}]
« Ultima modifica: 28 Settembre 2013, 10:56:19 CEST da auron86, Reason: Merged DoublePost »

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Lettura valori JSON
« Risposta #3 il: 28 Settembre 2013, 11:23:34 CEST »
0
Supponendo che il codice Java sia a posto, prova questo e vedi se da' errore:

Codice: [Seleziona]
[{"nome":"Mario","cognome":"Rossi","interessi":["calcio","moto","film"]}]
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline svoa89

  • Nuovo arrivato
  • *
  • Post: 43
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5, Nexus 7
  • Sistema operativo:
    Ubuntu 13.10
Re:Lettura valori JSON
« Risposta #4 il: 30 Settembre 2013, 10:23:32 CEST »
0
ciao a tutti!!!
anche io ho lo stesso identico problema!!!! le classi per efettuare il parsing del JSON annidato sono pronte ma il logcat mi da il seguente errore!!!
Codice: [Seleziona]
09-30 10:10:27.589: W/dalvikvm(27377): threadid=1: thread exiting with uncaught exception (group=0x40172560)
09-30 10:10:27.609: E/AndroidRuntime(27377): FATAL EXCEPTION: main
09-30 10:10:27.609: E/AndroidRuntime(27377): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.galleriafoto/com.galleriafoto.AlbumJson}: java.lang.IllegalStateException: Target host must not be null, or set in parameters.
09-30 10:10:27.609: E/AndroidRuntime(27377):         at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1659)
09-30 10:10:27.609: E/AndroidRuntime(27377):         at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1675)
09-30 10:10:27.609: E/AndroidRuntime(27377):         at android.app.ActivityThread.access$1500(ActivityThread.java:121)
09-30 10:10:27.609: E/AndroidRuntime(27377):         at android.app.ActivityThread$H.handleMessage(ActivityThread.java:943)
09-30 10:10:27.609: E/AndroidRuntime(27377):         at android.os.Handler.dispatchMessage(Handler.java:99)
09-30 10:10:27.609: E/AndroidRuntime(27377):         at android.os.Looper.loop(Looper.java:130)
09-30 10:10:27.609: E/AndroidRuntime(27377):         at android.app.ActivityThread.main(ActivityThread.java:3768)
09-30 10:10:27.609: E/AndroidRuntime(27377):         at java.lang.reflect.Method.invokeNative(Native Method)
09-30 10:10:27.609: E/AndroidRuntime(27377):         at java.lang.reflect.Method.invoke(Method.java:507)
09-30 10:10:27.609: E/AndroidRuntime(27377):         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:878)
09-30 10:10:27.609: E/AndroidRuntime(27377):         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:636)
09-30 10:10:27.609: E/AndroidRuntime(27377):         at dalvik.system.NativeStart.main(Native Method)
09-30 10:10:27.609: E/AndroidRuntime(27377): Caused by: java.lang.IllegalStateException: Target host must not be null, or set in parameters.
09-30 10:10:27.609: E/AndroidRuntime(27377):         at org.apache.http.impl.client.DefaultRequestDirector.determineRoute(DefaultRequestDirector.java:572)
09-30 10:10:27.609: E/AndroidRuntime(27377):         at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:292)
09-30 10:10:27.609: E/AndroidRuntime(27377):         at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
09-30 10:10:27.609: E/AndroidRuntime(27377):         at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
09-30 10:10:27.609: E/AndroidRuntime(27377):         at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
09-30 10:10:27.609: E/AndroidRuntime(27377):         at com.galleriafoto.JSONParserNested.getJSONFromUrl(JSONParserNested.java:38)
09-30 10:10:27.609: E/AndroidRuntime(27377):         at com.galleriafoto.AlbumJson.onCreate(AlbumJson.java:50)
09-30 10:10:27.609: E/AndroidRuntime(27377):         at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
09-30 10:10:27.609: E/AndroidRuntime(27377):         at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1623)
09-30 10:10:27.609: E/AndroidRuntime(27377):         ... 11 more


e non capisco il motivo!!!!  :-( :-( :-( :-(

Offline gabric

  • Utente senior
  • ****
  • Post: 613
  • Respect: +18
    • Google+
    • Mostra profilo
    • Brancato's site
  • Dispositivo Android:
    Nexus 5 / Tablet mediacom s4
  • Play Store ID:
    Brancato's+app
  • Sistema operativo:
    window7. ubuntu
Re:Lettura valori JSON
« Risposta #5 il: 30 Settembre 2013, 11:43:33 CEST »
0
Codice (Java): [Seleziona]
Caused by: java.lang.IllegalStateException: Target host must not be null, or set in parameters.
 at com.galleriafoto.JSONParserNested.getJSONFromUrl(JSONParserNested.java:38)09-30 10:10:27.609: E/AndroidRuntime(27377):         at com.galleriafoto.AlbumJson.onCreate(AlbumJson.java:50)


é scritto lì il motivo.
mostraci come "ottieni" il file json

Offline Nicola_D

  • Moderatore
  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:Lettura valori JSON
« Risposta #6 il: 30 Settembre 2013, 11:58:40 CEST »
0
secondo me fa una chiamata HTTP (penso con HttpClient) senza dare un URL
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

Offline svoa89

  • Nuovo arrivato
  • *
  • Post: 43
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5, Nexus 7
  • Sistema operativo:
    Ubuntu 13.10
Re:Lettura valori JSON
« Risposta #7 il: 30 Settembre 2013, 15:37:07 CEST »
0
ho risolto...errori di distrazione!!! :) grazie cmq!!!