读取JSON数据

时间:2013-07-23 20:02:57

标签: jquery json spring-mvc

我试图使用JSON从控制器向Spring MVC中的视图发送一些数据,这是控制器中的代码:

@RequestMapping(value="/twitter/searchgeomap", method=RequestMethod.GET)
public String TwitterSearchGeoJSON(@RequestParam("query") String query) throws TwitterException {
    List<Status> tweets = twitterService.twitterSearchGeo(query);
    List<String> geoList = new ArrayList<String>();
    JSONObject json = new JSONObject();

    for (Status tweet : tweets) {
        GeoLocation geo = tweet.getGeoLocation();
        String Latitude = String.valueOf(geo.getLatitude());
        String longitude = String.valueOf(geo.getLongitude());
        String text = tweet.getText();
        String place = tweet.getPlace().toString();

        geoList.add(text);
        geoList.add(Latitude);
        geoList.add(longitude);
        geoList.add(place);

        String key = String.valueOf(tweet.getId());
        json.accumulate(key, geoList);
    }

    return json.toString();
}

以下是我在视图中阅读JSON的方法:

$(document).ready(function() {
       $.getJSON("searchgeomap?query=obama", function(data){

            console.log("hi");
        });

});

第一个问题是我如何设置参数(查询)所以我不需要将它放入请求“searchgeomap?query = obama”?而另一个问题是console.log("hi");不起作用,我无法在控制台中看到输出,为什么函数内部没有任何内容被执行?我做错了什么?

2 个答案:

答案 0 :(得分:1)

好的第一个问题..你可以提供数据作为对象

$.getJSON("searchgeomap",{query:"obama"}, function(data){
        //--^^url--------^^---object

        console.log("hi");
 });

并且对于你的第二个问题..你在这里使用的网址是否在同一个域中..看起来你正在调用twitter函数..无论如何,那么你需要查看ajax jsonp,否则它就赢了'工作

答案 1 :(得分:1)

我认为您在控制器签名中缺少@ResponseBody注释,如此

public @ResponseBody String TwitterSearchGeoJSON(@RequestParam("query") String query) throws TwitterException