我从服务器收到以下回复:
{"SubjectName":["Irish","Maths","English","Science","Religion","Geography"],
"SubjectID":[1,2,3,4,5,6]}
我需要做的是尝试将响应分成两个单独的数组SubjectName和SubjectID。
这就是我所拥有的:
try {
jsonArray = jsonObject.getJSONArray("SubjectName");
} catch (JSONException e) {
e.printStackTrace();
}
SubjectName = new String[jsonArray.length()];
for (int i = 0; i < jsonArray.length(); i++)
{
try {
SubjectName[i] = jsonArray.getString(i);
} catch (JSONException e) {
e.printStackTrace();
}
}
try
{
jsonArray = jsonObject.getJSONArray("SUBJECTID");
Log.v("Worked", "SubjectID is in ");
} catch (JSONException e)
{
Log.v("failed","Not able to retrieve data");
e.printStackTrace();
}
SubjectID = new int[jsonArray.length()];
for (int i = 0; i < jsonArray.length(); i++)
{
try {
SubjectID[i] = jsonArray.getInt(i);
} catch (JSONException e)
{
e.printStackTrace();
}
}
字符串似乎转换没有问题,我可以得到SubjectName,但SubjectID部分似乎失败,我不知道为什么。我已经检查过,我似乎无法找到任何能告诉我如何从jsonaray解析int的地方。
答案 0 :(得分:4)
您使用了错误的节点名称。
替换
jsonArray = jsonObject.getJSONArray("SUBJECTID");
与
jsonArray = jsonObject.getJSONArray("SubjectID");