I have two classes in the background:
Public Class Person { private String name; Private Address address; // a custom class // getter and Setter methods omitted Public Class Address { private String Road; //getter and setter method omitted }
Logic classes:
@Controller Public classPersonController {@AutowiredPrivatePersonservice Personservice; @RequestMapping (Value="getpersons.htm", method =requestmethod.get) PublicModelandview View () {System. out. println ("Success"); List<Person> persons = Personservice.getpersons ();//Customizing the methodmap<string, object> modelmap =NewHashmap<string, object>(); Modelmap.put ("Persons", persons); return NewModelandview (MODELMAP); } }
In JS see the JSON data obtained is this:
{"Persons":[{"Address":{"Road":"Shopping mall"},"name":"Xiao Ming"},{"Address":{"Road":"Lotus Street"},"name":"Little Red"}]}
Front Code:
Ext.onready (function () {varstore =NewExt.data.Store ({proxy:NewExt.data.HttpProxy ({URL:'getpersons.htm'}), Reader:NewExt.data.JsonReader ({root:'Books'}, [{name:'name'}, {name:'Address' }]) }); varPersons =NewExt.grid.GridPanel ({store:store, CM:NewExt.grid.ColumnModel ({defaults: { Sortable:true, Width: $}, Columns: [{ Header:"name", Dataindex:'name'}, {header: /c8>"Address", Dataindex:'Address' }] }), Width:430, Height: the, Title:'Test', Renderto:'Persons' }); Store.load (); });
varstr ='[{"Persons": [{"Address": {"Road": "Commercial Street"}, "name": "Xiaoming"},{"address": {"Road": "Lotus Street"}, "name": "Little Red"}]}]'; STR=eval (str); for(varI=0; i<str.length;i++){ varstrpersons=str[i].persons; for(varj=0; j<strpersons.length;j++) {alert (strpersons[j].name); alert (strpersons[j].address.road); } }
JSON delivery of background data issues