2017-11-07 2 views
1

Ich habe dieses json zu analysieren:Ausgabe zu analysieren json

{ 
success: true, 
outputScenario: "Default", 
data: { 
output: [ 
{ 
titolo: "Lunedì 6 novembre", 
sottotitolo: "Pesanti illazioni sulla conoscenza pregressa tra Vittoria e Mattia. Una nuova conoscenza per Paolo. E...", 
date: "06/11/2017" 
}, 
{ 
titolo: "I vincitori di Maria Express", 
sottotitolo: "Loro sono...", 
date: "06/11/2017" 
}, 
{ 
titolo: "Mattia e Vittoria", 
sottotitolo: "Mattia viene messo alle strette e...", 
date: "06/11/2017" 
}, 
{ 
titolo: "Patto illecito? Accordo segreto? Conoscenza pregressa?", 
sottotitolo: "Mattia e Vittoria sono al centro di un vero e proprio irrisolvibile caso...", 
date: "06/11/2017" 
}, 
{ 
titolo: "Esterna di Mattia e Vittoria - 6 novembre", 
sottotitolo: "En plein air", 
date: "06/11/2017" 
}, 
{ 
titolo: "Esterna di Paolo e Giorgia - 6 novembre", 
sottotitolo: "Un primo incontro molto schietto", 
date: "06/11/2017" 
}, 
{ 
titolo: ""Sono fatto così"", 
sottotitolo: "Mattia è molto infastidito da alcuni commenti nei suoi riguardi", 
date: "06/11/2017" 
}, 
{ 
titolo: ""Occhi da gatta... morta!"", 
sottotitolo: "Tra Ester e Angela non corre buon sangue....", 
date: "06/11/2017" 
}, 
{ 
titolo: "Esterna di Paolo e Angela - 6 novembre", 
sottotitolo: "Caldarroste e chiarimenti", 
date: "06/11/2017" 
}, 
{ 
titolo: "Esterna di Paolo e Ester - 6 novembre", 
sottotitolo: "Metti una serata... "romantica"", 
date: "06/11/2017" 
}, 
{ 
titolo: ""Sei la persona a cui penso di più"", 
sottotitolo: "Nella prossima puntata del Trono Classico...", 
date: "05/11/2017" 
}, 
{ 
titolo: "Esterna inedita di Paolo e Silvia - 3 novembre", 
sottotitolo: "Un'esterna vintage!", 
date: "03/11/2017" 
} 
], 
output2: [ 
"http://www.video.mediaset.it/bin/415.$plit/640x360_C_2_video_773297_videoThumbnail.jpg", 
"http://www.video.mediaset.it/bin/515.$plit/640x360_C_2_video_773293_videoThumbnail.jpg", 
"http://www.video.mediaset.it/bin/605.$plit/640x360_C_2_video_773279_videoThumbnail.jpg", 
"http://www.video.mediaset.it/bin/917.$plit/640x360_C_2_video_773268_videoThumbnail.jpg", 
"http://www.video.mediaset.it/bin/142.$plit/640x360_C_2_video_773267_videoThumbnail.jpg", 
"http://www.video.mediaset.it/bin/479.$plit/640x360_C_2_video_773264_videoThumbnail.jpg", 
"http://www.video.mediaset.it/bin/929.$plit/640x360_C_2_video_773266_videoThumbnail.jpg", 
"http://www.video.mediaset.it/bin/196.$plit/640x360_C_2_video_773261_videoThumbnail.jpg", 
"http://www.video.mediaset.it/bin/29.$plit/640x360_C_2_video_773262_videoThumbnail.jpg", 
"http://www.video.mediaset.it/bin/4.$plit/640x360_C_2_video_773258_videoThumbnail.jpg", 
"http://www.video.mediaset.it/bin/917.$plit/640x360_C_2_video_772171_videoThumbnail.jpg", 
"http://www.video.mediaset.it/bin/73.$plit/640x360_C_2_video_772128_videoThumbnail.jpg", 
"http://cdn.wittytv.it/wp-content/themes/wittytv/images/witty.png" 
] 
}, 
stateToken: "eyJqYXIiOnsidmVyc2lvbiI6InRvdWdoLWNvb2tpZUAyLjMuMiIsInN0b3JlVHlwZSI6Ik1lbW9yeUNvb2tpZVN0b3JlIiwicmVqZWN0UHVibGljU3VmZml4ZXMiOnRydWUsImNvb2tpZXMiOltdfSwidmVyc2lvbiI6MX0=", 
cookies: [ ] 
} 

Das erste Array output ich in der Lage bin zu analysieren, aber das zweite Array output2 i nicht in der Lage bin zu analysieren.

i zeigen Sie meinen Code:

@Override 
     protected Void doInBackground(Void... arg0) { 
      HttpHandler sh = new HttpHandler(); 

      // Making a request to url and getting response 
      String jsonStr = sh.makeServiceCall(url); 

      Log.e(TAG, "Response from url: " + jsonStr); 

      if (jsonStr != null) { 
       try { 
        JSONObject jsonObj = null; 
        try { 
         jsonObj = new JSONObject(jsonStr); 
        } catch (JSONException e) { 
         e.printStackTrace(); 
        } 

        // Getting JSON Array node 
        JSONArray contacts = jsonObj.getJSONObject("data").getJSONArray("output"); 

        // looping through All Contacts 
        for (int i = 0; i < contacts.length(); i++) { 
         JSONObject c = contacts.getJSONObject(i); 

         Video video=new Video(); 
         String titolo = c.getString("titolo"); 
         String sottotitolo = c.getString("sottotitolo"); 
         String data = c.getString("date"); 
         video.setTitolo(titolo); 
         video.setSottotitolo(sottotitolo); 
         video.setData(data); 



         videoList.add(video); 
        } 

        JSONArray itemArray = jsonObj.getJSONObject("data").getJSONArray("output2"); 

        for(int i=0;i<itemArray.length();i++) 

        { 

         String c = itemArray.getString(i); 

         Log.i("Value is:::",""+c); 

        } 


       } catch (final JSONException e) { 
        Log.e(TAG, "Json parsing error: " + e.getMessage()); 
        runOnUiThread(new Runnable() { 
         @Override 
         public void run() { 
          Toast.makeText(getApplicationContext(), 
            "Json parsing error: " + e.getMessage(), 
            Toast.LENGTH_LONG) 
            .show(); 
         } 
        }); 

       } 
      } else { 
       Log.e(TAG, "Couldn't get json from server."); 
       runOnUiThread(new Runnable() { 
        @Override 
        public void run() { 
         Toast.makeText(getApplicationContext(), 
           "Couldn't get json from server. Check LogCat for possible errors!", 
           Toast.LENGTH_LONG) 
           .show(); 
        } 
       }); 

      } 

      return null; 
     } 

dies für cicle nicht runned ist:

for(int i=0;i<itemArray.length();i++) 

         { 

          String c = itemArray.getString(i); 

          Log.i("Value is:::",""+c); 

         } 

ich diese bekommen von logcat:

Json parsing error: No value for output2 

wie Antwort vom Server i erhalten nur das erste Array und nicht das zweite ... warum?

Wer kann mir helfen?

Vielen Dank im Voraus!

+2

Es scheint, formatiert wie diese JSON nicht gültig ist. JSON-Schlüssel müssen mit "" versehen werden. Es wird empfohlen, einen JSON-Validator zu verwenden. Google für Ihre – Royz

+1

Ihre JSON ist nicht gültig !!! – Fakher

+0

'output2' Array ist nicht in' Json' Format, es ist ungültig – pleft

Antwort

0

"Daten" -Objekt hat 2 Arrays - Output, Output2. Sie haben die erste richtig, indem Sie "output" aus Daten ziehen. Machen Sie den gleichen Weg für der zweite.

JSONArray Kontakte = jsonObj.getJSONObject ("Daten"). GetJSONArray ("Ausgabe");

Ändern Sie diese Zeile

JSONArray itemArray = jsonObj.getJSONArray("output2"); 

zu

JSONArray output2 = jsonObj.getJSONObject("data").getJSONArray("output2"); 
+0

Ich habe das gleiche Problem. ... – Sisso

+0

Ihre Beobachtung scheint korrekt zu sein, aber nach Korrektur wie vorgeschlagen ist das Problem, dass 'output2' kein gültiges' json' Array ist. – pleft

+0

Scheint so, als wäre die von Ihnen gepostete JSON-Zeichenfolge nicht gültig. Versuchen Sie es mit einem json Validator online zu überprüfen. – shravani

2

Versuchen Sie, diese Json String

{ 
    "success": true, 
    "outputScenario": "Default", 
    "data": { 
     "output": [ 
     { 
      "titolo": "Lunedì 6 novembre", 
      "sottotitolo": "Pesanti illazioni sulla conoscenza pregressa tra Vittoria e Mattia. Una nuova conoscenza per Paolo. E...", 
      "date": "06/11/2017" 
     }, 
     { 
      "titolo": "I vincitori di Maria Express", 
      "sottotitolo": "Loro sono...", 
      "date": "06/11/2017" 
     } 
     ], 
     "output2": [ 
     "http://www.video.mediaset.it/bin/415.$plit/640x360_C_2_video_773297_videoThumbnail.jpg", 
     "http://www.video.mediaset.it/bin/515.$plit/640x360_C_2_video_773293_videoThumbnail.jpg", 
     "http://www.video.mediaset.it/bin/605.$plit/640x360_C_2_video_773279_videoThumbnail.jpg", 
     "http://www.video.mediaset.it/bin/917.$plit/640x360_C_2_video_773268_videoThumbnail.jpg", 
     "http://www.video.mediaset.it/bin/142.$plit/640x360_C_2_video_773267_videoThumbnail.jpg", 
     "http://www.video.mediaset.it/bin/479.$plit/640x360_C_2_video_773264_videoThumbnail.jpg", 
     "http://www.video.mediaset.it/bin/929.$plit/640x360_C_2_video_773266_videoThumbnail.jpg", 
     "http://www.video.mediaset.it/bin/196.$plit/640x360_C_2_video_773261_videoThumbnail.jpg", 
     "http://www.video.mediaset.it/bin/29.$plit/640x360_C_2_video_773262_videoThumbnail.jpg", 
     "http://www.video.mediaset.it/bin/4.$plit/640x360_C_2_video_773258_videoThumbnail.jpg", 
     "http://www.video.mediaset.it/bin/917.$plit/640x360_C_2_video_772171_videoThumbnail.jpg", 
     "http://www.video.mediaset.it/bin/73.$plit/640x360_C_2_video_772128_videoThumbnail.jpg", 
     "http://cdn.wittytv.it/wp-content/themes/wittytv/images/witty.png" 
     ] 
    }, 
    "stateToken": "eyJqYXIiOnsidmVyc2lvbiI6InRvdWdoLWNvb2tpZUAyLjMuMiIsInN0b3JlVHlwZSI6Ik1lbW9yeUNvb2tpZVN0b3JlIiwicmVqZWN0UHVibGljU3VmZml4ZXMiOnRydWUsImNvb2tpZXMiOltdfSwidmVyc2lvbiI6MX0=", 
    "cookies": [] 
} 
+0

es ist gültig !!!! – Sisso

+0

Ja, dein JSON ist nicht gültig. Formatiere deinen JSON richtig. – shravani

+0

warum? Bitte hilf mir!! – Sisso