我有一些Java代码将从Servlet中打印出JSON:
JSONArray arrayObj = new JSONArray();
arrayObj.put("MCA");
arrayObj.put("Amit Kumar");
arrayObj.put("19-12-1986");
arrayObj.put(24);
arrayObj.put("Scored");
arrayObj.put(new Double(66.67));
PrintWriter out = response.getWriter();
out.println(arrayObj);
将在浏览器中打印出一个类似于:
的页面[“MCA”,“Amit Kumar”,“19-12-1986”,24,“得分”,66.67]
我需要能够生成更复杂的树状数据结构,例如
[{
task:'Project: Shopping',
duration:13.25,
user:'Tommy Maintz',
iconCls:'task-folder',
expanded: true,
children:[{
task:'Housewares',
duration:1.25,
user:'Tommy Maintz',
iconCls:'task-folder',
children:[{
task:'Kitchen supplies',
duration:0.25,
user:'Tommy Maintz',
leaf:true,
iconCls:'task'
},{
task:'Groceries',
duration:.4,
user:'Tommy Maintz',
leaf:true,
iconCls:'task'
},{
task:'Cleaning supplies',
duration:.4,
user:'Tommy Maintz',
leaf:true,
iconCls:'task'
},{
task: 'Office supplies',
duration: .2,
user: 'Tommy Maintz',
leaf: true,
iconCls: 'task'
}]
}, {
task:'Remodeling',
duration:12,
user:'Tommy Maintz',
iconCls:'task-folder',
expanded: true,
children:[{
task:'Retile kitchen',
duration:6.5,
user:'Tommy Maintz',
leaf:true,
iconCls:'task'
},{
我可以使用org.json
API生成这种树状JSON响应的方法或技术吗?具体来说,我想知道是否可以使用任何东西来处理扩展节点,子节点和叶节点的创建?
答案 0 :(得分:2)
您希望使用JSONObject创建任意值的键映射,包括JSONArrays甚至其他JSONObject。
答案 1 :(得分:0)
答案 2 :(得分:0)
如果所有数据对象都知道如何将自己转换为JSONObject
(或其他),则可以组装对象树并在根节点上调用toJSON
。填充“平面”成员并使用子任务JSONArray
调用的结果创建“子”toJSON()
。
这是基本的树递归。当然,如果您的数据尚未以这种方式构建,那么这无济于事。
public interface JSONThing {
public JSONObject toJSON();
}