서버에서 데이터를 가져 와서 앱에 표시하려고합니다. 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 데이터의 DATA 부분을 얻지 못합니다.
내 JAVA 클래스 구현은 다음과 같습니다.
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 부분이 null이고 COLUMNS 값만 가져올 수 있습니다. 왜 이런 일이 일어날 수 있는지 모르겠습니다. 누구든지 이것에 대해 도울 수 있습니까?
데이터를 올바르게 가져 오기 위해 이렇게 한 적이 없기 때문에 null 일 수 있습니다.
JSONArray companyData = jsonObject.getJSONArray("DATA");
COLUMNS 배열 만 있고 데이터가 해당 배열 내에 없습니다.
또한 데이터 배열은 배열 내의 배열입니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다