解析json的问题 [英] Issue to parse json

查看:112
本文介绍了解析json的问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我必须解析这个json:

i have to parse this 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: [ ]
}

第一个数组输出我能够解析,但是第二个数组 output2 我无法解析。

The first array output i am able to parse, but the second array output2 i am not able to parse.

我给你看了我的代码:

@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;
        }

此cicle未运行:

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

                        {

                            String c = itemArray.getString(i);

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

                        }

我从logcat得到这个:

I get this from logcat:

Json parsing error: No value for output2

来自服务器的响应我只得到第一个数组而不是第二个......为什么?

how response from server i get only the first array and not the second...why?

谁可以帮助我?

先谢谢!

推荐答案

试试这个格式化的Json字符串

Try this formatted 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": []
}

这篇关于解析json的问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆