为什么我的for循环仅计入JSON响应中的一个对象?

时间:2014-09-19 15:58:13

标签: xamarin.ios xamarin restsharp

我正在尝试使用REST-JSON响应生成的地图注释制作地图。我成功制作了一个,JSON响应包含两个对象。为什么只有一个打印出来?

我正在使用RestSharp和Xamarin.iOS。

这是原始回复的Gist-clone

将数据抓取到以后的函数在我们的地图上进行地图注释:

Action getAllMarkers = () => {
    var client = new RestClient("http://www.example.com/");
    var request = new RestRequest(String.Format("api/?function=searchByName&key=&name=Sundsvall"));

    client.ExecuteAsync (request, response => {
        JsonValue data = JsonValue.Parse(response.Content);
            for (var i = 0; i < data.Count; i++){
                Double lat = data["result"][i]["lat"];
                Double lng = data["result"][i]["lng"];
                String name = data["result"][i]["title"];
                String adress = data["result"][i]["adress"];
                var store = new BasicMapAnnotation (new CLLocationCoordinate2D(lat, lng), name, adress);
                Console.WriteLine(response.Content);
                    InvokeOnMainThread ( () => {
                        // manipulate UI controls
                        map.AddAnnotation(store);
                    });
                }
            });
        };

    getAllMarkers();

2 个答案:

答案 0 :(得分:1)

data.Count为1,因为json中有一个顶级“结果”节点。请改用data["result"].Count

答案 1 :(得分:1)

您的result是使用其他数据的主阵列:data["result"].Count而不是data.Count