如何在java中的嵌套json中删除数组

时间:2017-03-02 12:37:12

标签: java jquery json

我的JSON数据看起来像这样,我试图通过datatable发送它。但子jsons没有解决。

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

所以我决定改为

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

这里的Java代码

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;

}

这是我到目前为止所拥有的。有人认为他们可以帮忙吗?

DataTable代码:

$('#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 个答案:

答案 0 :(得分: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());
    }
}