weixin_42404268 2010-12-07 11:06
浏览 156
已采纳

Json传递后台数据的问题

在后台我有两个类:
[code="java"]public Class Person {
private String name;
private Address address;//一个自定义的类
//getter和setter方法省略
}

public Class Address {
private String road;
//getter和setter方法省略
}
[/code]
逻辑类:
[code="java"]@Controller
public class PersonController {

@Autowired
private PersonService personService;

@RequestMapping(value = "getPersons.htm", method = RequestMethod.GET)
public ModelAndView view() {
    System.out.println("success");
    List<Person> persons = personService.getPersons();//自定义的方法
    Map<String, Object> modelMap = new HashMap<String, Object>();
    modelMap.put("persons", persons);
    return new ModelAndView(modelMap);
}

}[/code]
我在js看到获取到的json数据是这样的:
[code="java"]{"persons":[{"address":{"road":"商业街"},"name":"小明"},{"address":{"road":"莲花街"},"name":"小红"}]}[/code]
前台代码:
[code="java"]Ext.onReady(function() {

        var store = new Ext.data.Store({
                    proxy : new Ext.data.HttpProxy({
                                url : 'getPersons.htm'
                            }),
                    reader : new Ext.data.JsonReader({
                                root : 'books'
                            }, [{
                                        name : 'name'
                                    }, {
                                        name : 'address'
                                    }])
                });

        var persons = new Ext.grid.GridPanel({
                    store : store,
                    cm : new Ext.grid.ColumnModel({
                                defaults : {
                                    sortable : true,
                                    width : 200
                                },
                                columns : [{
                                            header : "name",
                                            dataIndex : 'name'
                                        }, {
                                            header : "address",
                                            dataIndex : 'address'
                                        }]
                            }),
                    width : 430,
                    height : 270,
                    title : 'Test',
                    renderTo : 'persons'
                });

        store.load();
    });[/code]

在前台我要怎样获取json的数据才可以显示出来person中的address呢?

  • 写回答

1条回答 默认 最新

  • weixin_42360958 2010-12-07 19:08
    关注

    兄弟,看好咯, 你的json有问题,请不要使用第三方解析包。

    先指出你从后台返回到前台的json有问题,缺少[]

    测试代码给你看一下
    [code="js"]
    var str = '[{"persons":[{"address":{"road":"商业街"},"name":"小明"},{"address":{"road":"莲花街"},"name":"小红"}]}]';
    str = eval(str);
    for(var i=0;i<str.length;i++){
    var strpersons= str[i].persons;
    for(var j=0;j<strpersons.length;j++){
    alert(strpersons[j].name);
    alert(strpersons[j].address.road);
    }
    }
    [/code]

    测试通过了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 怎么把多于硬盘空间放到根目录下
  • ¥15 Matlab问题解答有两个问题
  • ¥50 Oracle Kubernetes服务器集群主节点无法访问,工作节点可以访问
  • ¥15 LCD12864中文显示
  • ¥15 在使用CH341SER.EXE时不小心把所有驱动文件删除了怎么解决
  • ¥15 gsoap生成onvif框架
  • ¥15 有关sql server business intellige安装,包括SSDT、SSMS。
  • ¥15 stm32的can接口不能收发数据
  • ¥15 目标检测算法移植到arm开发板
  • ¥15 利用JD51设计温度报警系统