日期:2014-05-19  浏览次数:20851 次

实体数据集合如何封装成json数据?


Java code

public JSONArray getState() {
        SampleAjaxDAOImpl dao = new SampleAjaxDAOImpl();//DAO
        BMBmsBranch[] bos = dao.queryByBranchLevel("2");//获取机构数据集合
        List<BMBmsBranch> list = new ArrayList<BMBmsBranch>();
        for (int i = 0; i < bos.length; i++) {
            list.add(bos[i]);                    //把数据迭代放入List
        }
        JSONArray jsonArray = new JSONArray(list);
        return jsonArray;
}


如上面java代码所示,我写了个方法获取实体数据的集合,再把数据集合封装成json,但出来的数据格式没有转换json的数据格式,出来的数据格式具体如下:
["<BMBmsBranch __type=\"sdo:cn.ccb.supproject.spl_ajax.data.model.BMBmsBranch\" __id=\"0\">
<id __type=\"java:java.lang.Long\">45<\/id>
<parentBranchId __type=\"java:java.lang.Integer\">1<\/parentBranchId>
<code __type=\"java:java.lang.String\">715<\/code>
<branchlevel __type=\"java:java.lang.Integer\">2<\/branchlevel>
<name __type=\"java:java.lang.String\">盐田店<\/name>
<registerDate __type=\"java:java.sql.Date\">2012-03-01<\/registerDate>
<registerOrg __type=\"java:java.lang.String\">200<\/registerOrg>
<registerPerson __type=\"java:java.lang.String\">666666666666666666<\/registerPerson>
<shortName __type=\"java:java.lang.String\">盐田店<\/shortName>
<status __type=\"java:java.lang.Integer\">1<\/status>
<indNo __isNullOrEmpty=\"null\"\/>
<\/BMBmsBranch>"
,
"<BMBmsBranch __type=\"sdo:cn.ccb.supproject.spl_ajax.data.model.BMBmsBranch\" __id=\"0\">
<id __type=\"java:java.lang.Long\">46<\/id>
<parentBranchId __type=\"java:java.lang.Integer\">1<\/parentBranchId>
<code __type=\"java:java.lang.String\">712<\/code>
<branchlevel __type=\"java:java.lang.Integer\">2<\/branchlevel>
<name __type=\"java:java.lang.String\">罗湖店<\/name>
<registerDate __type=\"java:java.sql.Date\">2012-03-01<\/registerDate>
<registerOrg __type=\"java:java.lang.String\">442000200<\/registerOrg>
<registerPerson __type=\"java:java.lang.String\">666666666666666666<\/registerPerson>
<shortName __type=\"java:java.lang.String\">罗湖店<\/shortName>
<status __type=\"java:java.lang.Integer\">1<\/status>
<indNo __isNullOrEmpty=\"null\"\/>
<\/BMBmsBranch>"]

想问一下,是不是我方法里面用错了什么,正确的把实体数据集合封装成json的代码应该怎么写?

------解决方案--------------------
JsonArray.format(Object).toString()这个是将你的对象转换为JSON对象,但是object对象不能存在嵌套,如果存在的话,可能会报错。可以试试