我正在使用此代码
private void parseData(JSONArray array){
Log.d(TAG, "Parsing array");
for(int i = 0; i<array.length(); i++) {
bookItems bookItem = new bookItems();
JSONObject jsonObject = null;
try {
jsonObject = array.getJSONObject(i);
JSONObject bookChapter = jsonObject.getJSONObject("chapter");
bookItem.setbook_subtitle(bookChapter.getString("subtitle"));
JSONObject chapVerses = jsonObject.getJSONObject("verses");
JSONArray verseReaders = chapVerses.getJSONArray("readers");
JSONObject readersNum = verseReaders.getJSONObject("number");
verseReadNum = readersNum;
} catch (JSONException w) {
w.printStackTrace();
}
mbookItemsList.add(bookItem);
}
}
解析这个json。
[
{
"chapter": {
"subtitle": "Something happened in this in this chapter"
},
"verses": {
"about": [
{
"In this verse, a lot of things happened yes a lot!"
}
],
"readers": [
{
"read": false,
"number": "No body has read this verse yet"
}
],
}
},
...]
我正在收到&#34;副标题&#34;这是正确的,但我得到了#34;数字&#34;。
从第JSONObject readersNum = verseReaders.getJSONObject("number");
行开始,Android工作室抱怨JSONArray中的 getJSONOBJECT(int)无法应用于(java.lang.String)
请问,我该如何正确解析这个?
答案 0 :(得分:1)
<TextView
android:id="@+id/calendar_year"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginRight="20dp"
android:text="2016" />
TextView label = (TextView) row.findViewById(R.id.calendar_month);
是verseReaders
,因此您需要迭代(或取第一个)JSONArray
,然后从该对象中获取字符串。
JSONObject
答案 1 :(得分:0)
您必须使用嵌套循环。只需为“读者”添加一个for
。