Json传递后台数据的问题

在后台我有两个类:

    public Class Person {  
    private String name;  
    private Address address;//一个自定义的类  
    //getter和setter方法省略  
    }  
      
    public Class Address {  
    private String road;  
    //getter和setter方法省略  
    }  

逻辑类:

    @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);  
        }  
    }  

在js看到获取到的json数据是这样的:

    {"persons":[{"address":{"road":"商业街"},"name":"小明"},{"address":{"road":"莲花街"},"name":"小红"}]}  

前台代码:

    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();  
            });  
    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);  
                    }  
                  }   
原文地址:https://www.cnblogs.com/zhujiabin/p/4520099.html