在浏览器中手动运行URL时,将返回此JSON。
$final = array();
foreach($attri_ids_all as $key=>$value){
$final[$value] = $inventory_code_qty[$key];
}
代码如下:
{
"error": false,
"0": {
"question": "Using the information that 6.7 × 52 = 348.4, Find the value of: 6.7 × 520",
"useranswer": "3484",
"correctanswer": "3484",
"correct": "1"
},
"1": {
"question": "Jane drives 50mph. London is 350 miles away. How long will it take?",
"useranswer": "5",
"correctanswer": "7",
"correct": "0"
},
"2": {
"question": "74*3?",
"useranswer": "222",
"correctanswer": "222",
"correct": "1"
},
"3": {
"question": "39+31?",
"useranswer": "70",
"correctanswer": "70",
"correct": "1"
}
}
然后在这里处理public List<String> GetTestResultsFromUserID(Integer userID){
BufferedReader bufferedReader = null;
try {
URL url = new URL(AppConfig.Results_URL + "?userid=" + userID);
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.setRequestProperty ("Authorization", "Basic Z2FycmV0dGg6ZnJBc3Rpbmc0");
bufferedReader = new BufferedReader(new InputStreamReader(con.getInputStream()));
String result;
result = bufferedReader.readLine();
return ProcessResultSetFromDatabase(result);
}catch(Exception e){
Log.d("Exception in try", "Exception" + e.toString());
return null;
}
}
:
result
注意:传递给private List<String> ProcessResultSetFromDatabase(String result){
List<String> resultSet = new ArrayList<String>();
try{
JSONObject jObj = new JSONObject(result);
boolean error = jObj.getBoolean("error");
if (!error){
for (int i=0; i<48; i++){
JSONObject rSet = jObj.getJSONObject(Integer.toString(i));
resultSet.add("Q: "+rSet.getString("question")+" Correct Ans: "+rSet.getString("correctanswer")+" Given Ans: "+rSet.getString("useranswer")+" Correct:"+(rSet.getString("correct")));
}
}else{
resultSet.add("No results at the moment");
}
}catch(JSONException e){
e.printStackTrace();
}
return resultSet;
}
的结果在传递时似乎为空。
答案 0 :(得分:0)
你的JSON输出是"0":{"question":
字符串,你传递整数,所以你需要将int转换为字符串。
for (int i=0; i<48; i++){
int tmpInt = i;
String str= String.valueOf(i);
JSONObject rSet = jObj.getJSONObject(str);
resultSet.add("Q: "+rSet.getString("question")+" Correct Ans: "+rSet.getString("correctanswer")+" Given Ans: "+rSet.getString("useranswer")+" Correct:"+(rSet.getString("correct")));
}
答案 1 :(得分:0)
您应该使用Iterator
解析数据。
JSONObject jObj = new JSONObject(result);
if (jObj.length() > 0) {
Iterator<String> keys = jObj.keys();
while (keys.hasNext()) {
String key = keys.next();
JSONObject json= jObj.optJSONObject(key);
Log.e("json", json.toString());
if (json!= null) {
resultSet.add("Q: "+json.getString("question")+" Correct Ans: "+json.getString("correctanswer")+" Given Ans: "+json.getString("useranswer")+" Correct:"+(json.getString("correct")));
}
}
}