来自服务器的 JSON 部分响应返回空值:Android
Part of JSON response from server is returning null: Android
我正在尝试从服务器获取数据,然后将其显示到应用程序中。
我有 JSON 数据,
{"COLUMNS":["TIMEID","BRANCHID","COMPANYID","MON_O","TUE_O","WED_O","THU_O","FRI_O","SAT_O","SUN_O","MON_C","TUE_C","WED_C","THU_C","FRI_C","SAT_C","SUN_C","CREATDATE"],"DATA":[[195,4,4,"09:00","09:00","09:00","09:00","09:00","Closed","Closed","16:30","16:30","16:30","16:30","16:30","Closed","Closed","May, 16 2017 08:16:12"]]}
当我访问 url 时,我得到了完整的 JSON 数据,但是当我从服务器记录相同的响应时,我没有得到 JSON 的数据部分数据.
我的 JAVA class 实现是,
public static final String MON_O = "MON_O";
public static final String TUE_O = "TUE_O";
public static final String WED_O = "WED_O";
public static final String THU_O = "THU_O";
public static final String FRI_O = "FRI_O";
public static final String SAT_O = "SAT_O";
public static final String SUN_O = "SUN_O";
public static final String MON_C = "MON_C";
public static final String TUE_C = "TUE_C";
public static final String WED_C = "WED_C";
public static final String THU_C = "THU_C";
public static final String FRI_C = "FRI_C";
public static final String SAT_C = "SAT_C";
public static final String SUN_C = "SUN_C";
public static final String JSON_ARRAY = "COLUMNS";
private void getData() {
String url = context.getString(site_url)+"branch_time.cfc?method=branchtime&branchid=" +dBranchID;
StringRequest stringRequest = new StringRequest(url, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
showJSON(response);
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(context,error.getMessage().toString(),Toast.LENGTH_LONG).show();
}
});
RequestQueue requestQueue = Volley.newRequestQueue(context);
requestQueue.add(stringRequest);
}
private void showJSON(String response) {
String name = "";
try {
JSONObject jsonObject = new JSONObject(response);
JSONArray result = jsonObject.getJSONArray(JSON_ARRAY);
Log.d("TAG", result.toString());
name = result.getString(MON_O);
} catch (JSONException e) {
e.printStackTrace();
}
timeStatus.setText(name);
}
我正在尝试从服务器记录结果并获取以下内容,
["TIMEID","BRANCHID","COMPANYID","MON_O","TUE_O","WED_O","THU_O","FRI_O","SAT_O","SUN_O","MON_C","TUE_C","WED_C","THU_C","FRI_C","SAT_C","SUN_C","CREATDATE"]
响应的DATA部分为空,我只能得到COLUMNS值。
我不知道为什么会这样。请问有人可以帮忙吗?
COLUMNS 使用的代码将是:
JSONObject companyData = jsonObject.getJSONArray("COLUMNS");
DATA 的代码使用将是:
JSONObject companyData = jsonObject.getJSONArray("DATA ");
如果你得到了你想要的解决方案,请标记我的回答有用。
可能它为空,因为您从未这样做过以正确获取该数据
JSONArray companyData = jsonObject.getJSONArray("DATA");
您只得到了 COLUMNS 数组,数据不在该数组中。
另请注意,数据数组是数组中的数组
我正在尝试从服务器获取数据,然后将其显示到应用程序中。 我有 JSON 数据,
{"COLUMNS":["TIMEID","BRANCHID","COMPANYID","MON_O","TUE_O","WED_O","THU_O","FRI_O","SAT_O","SUN_O","MON_C","TUE_C","WED_C","THU_C","FRI_C","SAT_C","SUN_C","CREATDATE"],"DATA":[[195,4,4,"09:00","09:00","09:00","09:00","09:00","Closed","Closed","16:30","16:30","16:30","16:30","16:30","Closed","Closed","May, 16 2017 08:16:12"]]}
当我访问 url 时,我得到了完整的 JSON 数据,但是当我从服务器记录相同的响应时,我没有得到 JSON 的数据部分数据.
我的 JAVA class 实现是,
public static final String MON_O = "MON_O";
public static final String TUE_O = "TUE_O";
public static final String WED_O = "WED_O";
public static final String THU_O = "THU_O";
public static final String FRI_O = "FRI_O";
public static final String SAT_O = "SAT_O";
public static final String SUN_O = "SUN_O";
public static final String MON_C = "MON_C";
public static final String TUE_C = "TUE_C";
public static final String WED_C = "WED_C";
public static final String THU_C = "THU_C";
public static final String FRI_C = "FRI_C";
public static final String SAT_C = "SAT_C";
public static final String SUN_C = "SUN_C";
public static final String JSON_ARRAY = "COLUMNS";
private void getData() {
String url = context.getString(site_url)+"branch_time.cfc?method=branchtime&branchid=" +dBranchID;
StringRequest stringRequest = new StringRequest(url, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
showJSON(response);
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(context,error.getMessage().toString(),Toast.LENGTH_LONG).show();
}
});
RequestQueue requestQueue = Volley.newRequestQueue(context);
requestQueue.add(stringRequest);
}
private void showJSON(String response) {
String name = "";
try {
JSONObject jsonObject = new JSONObject(response);
JSONArray result = jsonObject.getJSONArray(JSON_ARRAY);
Log.d("TAG", result.toString());
name = result.getString(MON_O);
} catch (JSONException e) {
e.printStackTrace();
}
timeStatus.setText(name);
}
我正在尝试从服务器记录结果并获取以下内容,
["TIMEID","BRANCHID","COMPANYID","MON_O","TUE_O","WED_O","THU_O","FRI_O","SAT_O","SUN_O","MON_C","TUE_C","WED_C","THU_C","FRI_C","SAT_C","SUN_C","CREATDATE"]
响应的DATA部分为空,我只能得到COLUMNS值。 我不知道为什么会这样。请问有人可以帮忙吗?
COLUMNS 使用的代码将是:
JSONObject companyData = jsonObject.getJSONArray("COLUMNS");
DATA 的代码使用将是:
JSONObject companyData = jsonObject.getJSONArray("DATA ");
如果你得到了你想要的解决方案,请标记我的回答有用。
可能它为空,因为您从未这样做过以正确获取该数据
JSONArray companyData = jsonObject.getJSONArray("DATA");
您只得到了 COLUMNS 数组,数据不在该数组中。
另请注意,数据数组是数组中的数组