我在解析另一个标签内的标签时遇到问题。 我有一个像这样的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”}。 我尝试使用与文章相同的方法,但是没有运气。
答案 0 :(得分:3)
“源”不是字符串,而是Json对象。因此,您需要执行以下操作:
JsonObject obj = jsonPart.getJSONObject("source");
String name = obj.getString("name");
String id = obj.getString("id");