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 に答える