2017-03-02 39 views
0

我的JSON數據看起來像這樣,我試圖通過datatable發送它。但子jsons不解決。如何在Java中嵌套json中刪除數組

{"data":[{"code":"001","name":"TEST", 
"drpList":[{"name":null,"bed":"xxx","mbed":null}, 
{"name":null,"bed":"eeee","mbed":null}]}]} 

,所以我決定改變這裏

public @ResponseBody JSONObject getDatafromjson(@RequestParam(required = false) String id,Model model){ 
    JSONObject ajson = new JSONObject(); 
    String uri = "https://191.165.1.139:8890/search?id="+id; 

    RestTemplate restTemplate = new RestTemplate(); 
    HttpHeaders headers = new HttpHeaders(); 
    headers.setAccept(Arrays.asList(MediaType.APPLICATION_JSON)); 
    HttpEntity<String> entity = new HttpEntity<String>("parameters", headers); 
    ResponseEntity<Data> result = restTemplate.exchange(uri, HttpMethod.GET, entity, Data.class); 
    Data data = result.getBody(); 
    List<sList> ciflist=data.getAccList(); 
    List<Data> list =new ArrayList<Data>(); 
    Data d = new Data(); 
    d.setName(data.getName()); 
    d.setCode(data.getCode()); 
    d.setSList(data.getSList()); 
    list.add(d); 
    ajson.put("data", list); 
    model = getNotification(model); 
return ajson; 

} 

{"data":[{"code":"001","name":"TEST", 
"drpList":{"name":null,"bed":"xxx","mbed":null}, 
{"name":null,"bed":"eeee","mbed":null}}]} 

Java代碼這是我到目前爲止所。任何人都認爲他們可以幫忙

數據表代碼:

$('#table').DataTable({ 
    "processing": true, 
    "serverSide": true, 
    "ajax": "Hello.php", 
       "bDestroy":true,                   
       "columns":[ 
        {"data": "code"},                
        {"data": "name"}, 
        {"data": "drpList.name"}, 
        {"data": "drpList.bed"},                       
        {"data": "drpList.mbed"} 
        ], 
        "language": { 
        "lengthMenu": "| View _MENU_ records per page", 
        "zeroRecords": "Nothing found - sorry", 
        "infoEmpty": "No records available", 
        "infoFiltered": "(filtered from _MAX_ total records)" 
        }, 
        "pagingType": "full_numbers", 
        "lengthChange": false 
}); 
+1

你的第二個JSON是不正確附近' 「drpList」:{...},{...}'。 –

+0

你的第二個JSON不正確,因爲'drpList'存儲多個值,所以它的值應該是'[]數組'格式。 或使每個數據點分開。 改變結構背後的原因是什麼? –

+0

@ user3145373:好,但如何設置數據表。 – user7646838

回答

0
import org.json.simple.JSONArray; 
import org.json.simple.JSONObject; 

JSONObject drpList = (JSONObject) jsonObject.get("drpList"); 
JSONArray bed = (JSONArray) drpList.get("bed"); 

for (int x = 0; x < bed.size(); x++) { 
    JSONObject obj = (JSONObject) bed.get(x); 
    JSONArray arr = (JSONArray) obj.get("attr"); 
    for (int y = 0; y < arr.size(); y++) { 
     System.out.println(((JSONObject) arr.get(y)).get("value").toString()); 
    } 
}