0

我在一个android应用程序中有这个代码,它需要一个数组,其中每个元素都是一个包含jsonObject格式的字符串,但我想获取每个对象的值,所以使用它。问题是JsonObject不带索引 0,所以它盯着 1,我从来没有看到第一个对象的值 1。

for(int i=0;i<a.length;i++){
    try {
        JSONObject jsonn = new JSONObject(a[i]);
        g=jsonn.getString(TAG_ID);
        builder.append("\n"+i+"."+"id swicht: "+"\n"+g+"\n");
    }
} catch (JSONException e) {//e.printStackTrace();}
4

1 回答 1

0

根据您的评论,代码应为:

jsonStr = jsonStr.substring(1, jsonStr.length() - 1); // (remove the "[" and "]")
String[] a = jsonStr.split(",");
for(int i=0;i<a.length;i++){
    try {
        JSONObject jsonn = new JSONObject(a[i]);
        g = jsonn.getString(TAG_ID);
        builder.append("\n"+i+"."+"id swicht: "+"\n"+g+"\n");
    } catch (JSONException e) {//e.printStackTrace();}
}

如果你不做第一行,数组中的第一个和最后一个元素将格式错误,无法转换 JSONObject -- "[{"dpid":"00:00:00:00:00:00:00:0c "}" 不是 JSONObject 的良好格式。

于 2015-08-20T08:45:45.960 回答