将数据添加到JSONObject

Cod*_*kie 21 java json

我试图弄清楚如何将以下数据添加到我的json对象.有人可以告诉我如何做到这一点.

网站示例

$(document).ready(function() {
  $('#example').dataTable( {
    "aoColumnDefs": [
     { "aDataSort": [ 0, 1 ], "aTargets": [ 0 ] },
     { "aDataSort": [ 1, 0 ], "aTargets": [ 1 ] },
     { "aDataSort": [ 2, 3, 4 ], "aTargets": [ 2 ] }
   ]
  } );
} );
Run Code Online (Sandbox Code Playgroud)

我的JSONObject需要包含上面的示例.

    JSONObject json = new JSONObject();
    json.put("aoColumnDefs", );
Run Code Online (Sandbox Code Playgroud)

Fra*_*eth 31

为了得到这个结果:

{"aoColumnDefs":[{"aTargets":[0],"aDataSort":[0,1]},{"aTargets":[1],"aDataSort":[1,0]},{"aTargets":[2],"aDataSort":[2,3,4]}]}
Run Code Online (Sandbox Code Playgroud)

保存相同的数据:

  {
    "aoColumnDefs": [
     { "aDataSort": [ 0, 1 ], "aTargets": [ 0 ] },
     { "aDataSort": [ 1, 0 ], "aTargets": [ 1 ] },
     { "aDataSort": [ 2, 3, 4 ], "aTargets": [ 2 ] }
   ]
  }
Run Code Online (Sandbox Code Playgroud)

你可以使用这段代码:

    JSONObject jo = new JSONObject();
    Collection<JSONObject> items = new ArrayList<JSONObject>();

    JSONObject item1 = new JSONObject();
    item1.put("aDataSort", new JSONArray(0, 1));
    item1.put("aTargets", new JSONArray(0));
    items.add(item1);
    JSONObject item2 = new JSONObject();
    item2.put("aDataSort", new JSONArray(1, 0));
    item2.put("aTargets", new JSONArray(1));
    items.add(item2);
    JSONObject item3 = new JSONObject();
    item3.put("aDataSort", new JSONArray(2, 3, 4));
    item3.put("aTargets", new JSONArray(2));
    items.add(item3);

    jo.put("aoColumnDefs", new JSONArray(items));

    System.out.println(jo.toString());
Run Code Online (Sandbox Code Playgroud)


Yon*_*oni 18

答案是使用JSONArray,并"深入"潜入树结构:

JSONArray arr = new JSONArray();
arr.put (...); // a new JSONObject()
arr.put (...); // a new JSONObject()

JSONObject json = new JSONObject();
json.put ("aoColumnDefs",arr);
Run Code Online (Sandbox Code Playgroud)