解析另一个标签内的json标签

时间:2019-02-04 21:29:49

标签: java android json

我在解析另一个标签内的标签时遇到问题。 我有一个像这样的json文件:

 "articles":[
             {
             "source":
                     {
                     "id":"generic-news",
                     "name":"Generic News"
                     },
             "author":" author's name",
             "title":"your title",
             "url":" your url",
             "publishedAt":"date",
             "content":"your content"
             },

我在解析源,作者,标题,URL,publishedAt和内容时没有问题,但是我无法获取ID和名称,这只会给我一个错误。 这是我的代码:

JSONObject jsonObject = new JSONObject(result);
            //result is the entire json file
            String newsInfo = jsonObject.getString("articles");

            JSONArray arr = new JSONArray(newsInfo);


            for(int i= 0; i < arr.length();i++){
                JSONObject jsonPart = arr.getJSONObject(i);

                Log.i("source", jsonPart.getString("source"));
                temp = jsonPart.getString("source");
                textView.append(temp+ "\n");
                Log.i("author", jsonPart.getString("author"));
                Log.i("title", jsonPart.getString("title"));
                temp = jsonPart.getString("title");
                textView.append(temp+ "\n");
                Log.i("description", jsonPart.getString("description"));
                temp = jsonPart.getString("description");
                textView.append(temp+ "\n");
                Log.i("url", jsonPart.getString("url"));
                temp = jsonPart.getString("url");
                textView.append(temp+ "\n");
                Log.i("publishedAt", jsonPart.getString("publishedAt"));
                temp = jsonPart.getString("publishedAt");
                textView.append(temp+ "\n");
                Log.i("content", jsonPart.getString("content"));
                temp = jsonPart.getString("content");
                textView.append(temp+ "\n");
        }

我的应用正确打印了作者的姓名,您的标题,您的url,日期和您的内容,但带有源却显示了{“ id”:“ generic-news”,“ name”:“ Generic News”}。 我尝试使用与文章相同的方法,但是没有运气。

1 个答案:

答案 0 :(得分:3)

“源”不是字符串,而是Json对象。因此,您需要执行以下操作:

JsonObject obj = jsonPart.getJSONObject("source");
String name = obj.getString("name");
String id = obj.getString("id");