【问题标题】:How to remove arrays in nested json in java如何在java中删除嵌套json中的数组
【发布时间】:2017-03-02 12:37:12
【问题描述】:

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

{"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;

}

这是我目前所拥有的。有人认为他们可以提供帮助吗?

数据表代码:

$('#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 
}); 

【问题讨论】:

  • 你的第二个json在"drpList":{...},{...}附近不正确。
  • 您的第二个 json 不正确,因为 drpList 存储多个值,因此它的值应为 [ ] array 格式。或者将每个数据点分开。改变结构背后的原因是什么?
  • @user3145373:好的,但是如何设置数据表。
  • @Tarwirdur Turon:好的
  • @Tarwirdur Turon:请看我更新的代码。我还添加了数据表代码

标签: java jquery json


【解决方案1】:
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());
    }
}

【讨论】:

    猜你喜欢
    • 2021-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-02
    相关资源
    最近更新 更多