来自服务器的JSON响应部分返回null:Android [英] Part of JSON response from server is returning null: Android

查看:203
本文介绍了来自服务器的JSON响应部分返回null:Android的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试从服务器获取数据,然后将其显示到应用程序中. 我有JSON数据,

I am trying to fetch data from the server and then display it into the app. I have JSON data as,

{"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部分.

When I access the url I get the complete JSON Data but when I am logging the same response from the server, I am not getting the DATA part of the 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);
}

我正在尝试从服务器记录结果并获取以下内容,

I am trying to log the result from the server and getting the below,

  ["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值. 我不知道为什么会这样.请问有人可以帮忙吗?

The DATA part of the response is null and I can get only the COLUMNS value. I have no idea why this could happen. Please can anyone help in this?

推荐答案

也许是空的,因为您从未这样做过以正确获取数据

Maybe it's null because you never did this to get that data correctly

JSONArray companyData = jsonObject.getJSONArray("DATA");

您仅获得了COLUMNS数组,并且数据不在该数组内.

You only got the COLUMNS array, and the data is not within that array.

还要注意,数据数组是数组中的一个数组

Also note that data array is an array within an array

这篇关于来自服务器的JSON响应部分返回null:Android的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆