访问ajax响应中的json对象列表

时间:2013-11-05 03:56:59

标签: java jquery ajax json gson

也许我有类似的问题,但我无法得到这个问题的正确关键字,所以请耐心等待。

我在may java class中有这种数据

List<String> listOne = some data list from the database
List<String> listTwo = another data list from the database

我想首先将这两个 List 作为json对象发送给客户端,所以我认为是这样的:

无论

Map<String, List<String>> map = new HashMap<String, List<String>>();
map.put( listOne );
map.put( listTwo );

return new Gson().toJson( map );

或者

List<List<String>> list = new ArrayList<List<String>>();
list.add( listOne );
list.add( listTwo );

return new Gjson().toJson( map );

我不知道哪个更好。 我要做的下一件事是访问客户端

$.post( 'some url', someData : 'that requires to know which data will be fetched',
        function( data ) {
        // here how can I access the two list inside the list
        // or the list inside the map
        // i want to have a full control to the data 
        // example:
        //    Iterate the listOne on this $('#someId').append( listOne );
        //    Iterate the listTwo on this $('#anotherId').append( listTwo );

      }, json);

正确执行此操作的方法是什么?如果我的问题不清楚,请发表评论,我会做出相应的回应。提前致谢

1 个答案:

答案 0 :(得分:0)

首先,您应该将代码修改为:

Map<String, List<String>> map = new HashMap<String, List<String>>();
map.put("listOne", listOne );
map.put("listTwo", listTwo );

return new Gson().toJson( map );

其次,您应该使用$.GetJSON()函数:

$.getJSON( 'some url', function( data ) {
   //Do something with data

});

然后,您可以使用data.listOnedata.listTwo直接访问数据。