我的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
});
答案 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());
}
}