我正在尝试反序列化来自 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 相当陌生,所以这可能非常简单。