我需要在我的Android应用程序中以JSON格式从服务器接收数据

时间:2015-08-03 07:50:29

标签: android json

这是我的JSON

 {
  "keys": [
    "10_Ultimate",
    "20_Yemensoft"
  ]
}

当我直接点击Url时,我得到了正确的响应,但没有来自Android。我也在jsonlint中看到JSON格式是正确的。但我收到以下信息:

  

org.json.JSONException:第11个字符的未终止数组   [B @ 41c16df8

2 个答案:

答案 0 :(得分:0)

当我点击Url时 http://192.168.0.103:8080/AndroidRest/financial/finList

我得到了正确的json响应我也在jsonlint.com验证了

{
  "keys" : [ "10_Ultimate", "20_Yemensoft" ]
}

当我尝试从android反序列化时,它会说:zh。jon.JSON异常:字符11处的未终止数组

 @Override
            public void onSuccess(int statusCode, Header[] headers, byte[] response) {
                  JSONObject jsnObj  = new JSONObject();
                  String res = response.toString();
                try {
                    JSONObject json = new JSONObject(res);
                    JSONArray jsnArry = json.getJSONArray("keys");
                    for (int i = 0 ; i < jsnArry.length() ; i++){
                         jsnObj = jsnArry.getJSONObject(i);
                    }
                    Log.d("jsnObj",jsnObj.toString());
                    Log.d("jsnArry",jsnArry.toString());

                } catch (JSONException e) {
                    e.printStackTrace();
                }

                Log.d("The Positive  are",res);

            }

答案 1 :(得分:0)

你可以尝试这个(我已经测试过):

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        String jsonString = "{\n" +
                "  \"keys\" : [ \"10_Ultimate\", \"20_Yemensoft\" ]\n" +
                "}";

        JSONObject jsnObj  = new JSONObject();
        try {
            JSONObject json = new JSONObject(jsonString);
            JSONArray jsnArry = json.getJSONArray("keys");
            for (int i = 0 ; i < jsnArry.length() ; i++){
                jsnObj.put(String.valueOf(i), jsnArry.getString(i));
            }
            Log.d("jsnObj", jsnObj.toString());
            Log.d("jsnArry",jsnArry.toString());

        } catch (JSONException e) {
            e.printStackTrace();
        }

        Log.d("The Positive  are", jsonString);
    }