2016-08-24 146 views
0

這是我目前格式化JSON

[{ 
    "year": "2015", 
    "org_name": "MOOE", 
    "suborg_name": "Forms Expenses", 
    "amt": "2", 
    "org_id": "4", 
    "suborg_id": "24" 
}, { 
    "year": "2016", 
    "org_name": "MOOE", 
    "suborg_name": "Forms Expenses", 
    "amt": "1", 
    "org_id": "4", 
    "suborg_id": "24" 
}] 

我想這種格式

[{ 
    "org_name": "MOOE", 
    "suborg_name": "Forms Expenses", 
    "suborg_id": "24", 
    "org_id": "4", 
    "Year": [{ 
     "year": "2015", 
     "amt": "2" 
    }, { 
     "year": "2016", 
     "amt": "1" 
    }] 
}] 

下面是我如何得到我的當前值:

List<String> list = new ArrayList<String>(); 
while (rs2.next()) { 
    JSONObject json = new JSONObject(); 

    if (!rs2.getString("suborg_id").isEmpty()) { 
     json.put("org_name", org_name); 
     json.put("year", year); 
     json.put("suborg_name", suborg_name); 
     json.put("amt", amt); 
     json.put("org_id", org_id); 
     json.put("suborg_id", suborg_id); 
    } 

    finaljson2.put(counter2, json.toString()); 
    counter2++; 
    list.add("" + json + ""); 
} 

//out.println("[" + finaljson2.toString() + "]"); 
out.println(list); 

我把在if語句中希望它會組同樣suborg_id

UPDATE

試圖推到JSON像

​​

我的輸出中看起來像之前添加一年,金額新的數組:

[{ 
    "org_name": "MOOE", 
    "suborg_name": "Forms Expenses", 
    "org_id": "4", 
    "suborg_id": "24", 
    "year": { 
     "year": "2015", 
     "amt": "2" 
    } 
}, { 
    "org_name": "MOOE", 
    "suborg_name": "Forms Expenses", 
    "org_id": "4", 
    "suborg_id": "24", 
    "year": { 
     "year": "20165", 
     "amt": "1" 
    } 
}] 

我的目標是讓格式

[{ 
    "org_name": "MOOE", 
    "suborg_name": "Forms Expenses", 
    "suborg_id": "24", 
    "org_id": "4", 
    "Year": [{ 
     "year": "2015", 
     "amt": "2" 
    }, { 
     "year": "2016", 
     "amt": "1" 
    }] 
}] 
+0

而且可能是什麼問題? – Burkhard

+0

我需要從查詢結果創建一個多維數組。問題是我無法創建它作爲多維它總是結束了只是單一@Burkhard –

+0

@Burkhard我有更新好心地檢查 –

回答

0

試試這個

List<String> list = new ArrayList<String>(); 
    while (rs2.next()) { 
    JSONObject json = new JSONObject(); 
if (!rs2.getString("suborg_id").isEmpty()) { 
json.put("org_name", org_name); 
json.put("suborg_name", suborg_name); 
json.put("org_id", org_id); 
json.put("suborg_id", suborg_id); 
json.put("year"); 

[{ 
    json.put("year", year); 
    json.put("amt", amt); 
    },{ 
    json.put("year", year); 
    json.put("amt", amt); 
    }] 

} 
finaljson2.put(counter2, json.toString()); 
counter2++; 
list.add("" + json + ""); 
} 
+0

在這裏得到錯誤''json.put(「年」);'說'沒有合適的方法爲put(字符串)' –

+0

檢查此線程.. http://stackoverflow.com/questions/10900235/how-to-write-a-nested-multi-dimensional-json-object可能b你從這個 – user6628729

+0

它的想法它是PHP我認爲在Java中它的不同 –