1

我正在尝试反序列化来自 Google Maps Geocode 的 JSON 响应。

这些是我根据响应编码的类。

public class GoogleGeoCodeResponse
    {
        public string status { get; set; }
        public results[] results { get; set; }
    }

public class results
    {
        public address_component[] address_components { get; set; }
        public String formatted_address { get; set; }
        public Geometry geometry { get; set; }
        public Boolean partial_match { get; set; }
        public string[] types { get; set; }
    }

public class address_component
    {
        public String long_name { get; set; }
        public String short_name { get; set; }
        public String[] types { get; set; }
    }

public class Geometry
    {
        public bounds_viewport bounds { get; set; }
        public LatLong location { get; set; }
        public String location_type { get; set; }
    }

public class bounds_viewport
    {
        public LatLong northeast { get; set; }
        public LatLong southwest { get; set; }
    }

public class LatLong
    {
        public double lon { get; set; }
        public double lat { get; set; }
    }

在我的表单按钮上单击我使用此代码。

var json = new WebClient().DownloadString("url");
GoogleGeoCodeResponse test = JsonConvert.DeserializeObject<GoogleGeoCodeResponse>(json);

MessageBox.Show(test.results[0].geometry.location.lat + " / " + test.results[0].geometry.location.lon);

然后我想看看我是否得到了正确的信息,但我得到了:

“错误 1 ​​可访问性不一致:属性类型 'WindowsFormsApplication1.results[]' 的可访问性低于属性 'WindowsFormsApplication1.GoogleGeoCodeResponse.results'”

我看过一堆有同样问题的帖子,但他们总是有一些私人或内部的东西会导致这个错误。如您所见,我声明的所有内容都是公开的。

我不明白为什么类中的公共内容比类本身更容易访问。

我对 C# 和 JSON 相当陌生,所以这可能非常简单。

4

1 回答 1

0

好的,所以我参加了我所有的课程并将代码从我的表单课程中取出,并且它起作用了。我把它放回课堂上,它仍然有效我不知道我改变了什么,也许它只是被窃听了或者无论如何谢谢你的帮助!

于 2013-01-30T15:40:12.263 回答