Javascript Xstream为列表生成json响应<;对象>;

Javascript Xstream为列表生成json响应<;对象>;,javascript,jquery,ajax,json,xstream,Javascript,Jquery,Ajax,Json,Xstream,我正在使用Xstream为我的应用程序生成JSON。我想使用JSON支持ajax。当我尝试 xstream.alias(classAlias, jsonModel.getClass()); //Note classAlias="records" responseStream.println(xstream.toXML(jsonModel)); 其中jsonModel实际上是一个实体对象列表。实体类名是Person,它位于“beans”包中,因此完整的限定名应该是beans.Perso

我正在使用Xstream为我的应用程序生成JSON。我想使用JSON支持ajax。当我尝试

     xstream.alias(classAlias, jsonModel.getClass()); //Note classAlias="records"
responseStream.println(xstream.toXML(jsonModel));
其中jsonModel实际上是一个实体对象列表。实体类名是Person,它位于“beans”包中,因此完整的限定名应该是beans.Person。好啊 Person类具有id、name、age等属性

生成的JSON是

   {"records":[{"beans.Person":[{"id":21,"name":"Name21","username":"Username21","password":"password21","age":41,"sex":true},{"id":22,"name":"Name22","username":"Username22","password":"password22","age":42,"sex":true},{"id":23,"name":"Name23","username":"Username23","password":"password23","age":43,"sex":true},{"id":24,"name":"Name24","username":"Username24","password":"password24","age":44,"sex":true},{"id":25,"name":"Name25","username":"Username25","password":"password25","age":45,"sex":true},{"id":26,"name":"Name26","username":"Username26","password":"password26","age":46,"sex":true},{"id":27,"name":"Name27","username":"Username27","password":"password27","age":47,"sex":true},{"id":28,"name":"Name28","username":"Username28","password":"password28","age":48,"sex":true},{"id":29,"name":"Name29","username":"Username29","password":"password29","age":49,"sex":true},{"id":30,"name":"Name30","username":"Username30","password":"password30","age":50,"sex":true}]}]}
我使用jquery的$.getJSON在button click事件中获得此响应。我每次都检查状态为“success”,因此工作正常。当我尝试访问第一个记录时,即个人信息,如id、用户名等,就会出现问题

我用Javascript编写语句,如下所示:

<script>
        $(document).ready(function() {
            $("input").click(function(){
                $.getJSON("http://mylocalhost:8080/Paging/paging/records?page=3",function(data,status){

                    alert(status);
                    alert(data.records[0].beans.Person[0].id);
                });
            });
        });

    </script>

$(文档).ready(函数(){
$(“输入”)。单击(函数(){
$.getJSON(“http://mylocalhost:8080/Paging/paging/records?page=3,功能(数据、状态){
警报(状态);
警报(data.records[0].beans.Person[0].id);
});
});
});
第一个警报有效,但第二个警报无效

然后javascript会在遇到错误时停止工作。我可以猜测的是,在记录数组中,Person对象后跟包名。这可能是因为浏览器可能会在记录数组中查找beans对象,而记录数组中不存在beans对象,因为beans。在这种情况下,Person是一个单一的原子名,如上所示。但不确定

如果这确实是个问题,那么我如何停止/控制XStream将对象的名称命名为classname(person),而不是默认命名的package.classname(beans.person)


或者,如果生成的JSON对象中一切正常,那么为什么我看不到预期的结果?为什么简单的第二个警报语句不起作用。

我得到了我要使用的答案

 alert(data.records[0]["beans.Person"][0].id);
而不是

 alert(data.records[0].beans.Person[0].id);
有用的链接