这是我的JSON
{
"keys": [
"10_Ultimate",
"20_Yemensoft"
]
}
当我直接点击Url时,我得到了正确的响应,但没有来自Android。我也在jsonlint中看到JSON格式是正确的。但我收到以下信息:
org.json.JSONException:第11个字符的未终止数组 [B @ 41c16df8
答案 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);
}