根据特定值(C#)获取嵌套JSON对象的值

时间:2017-07-11 12:57:01

标签: c# android json xamarin xamarin.android

我正在测试Xamarin Android应用程序,它需要我解析JSON数据。解析简单的JSON数据很容易,但是这个JSON数据看起来有点太复杂了。

我想做什么:

基于LatitudeLongitude,我想提取特定的JSON对象。

以下是数据:https://pastebin.com/raw/7QDh2uZH

到目前为止我所拥有的:

private async Task JsonFetcher()
{
    using (var client = new HttpClient())
    {
        client.BaseAddress = new Uri("https://pastebin.com");

        var result = await client.GetAsync("/raw/7QDh2uZH");
        string resultContent = await result.Content.ReadAsStringAsync();

        try
        {
            dynamic obj2 = Newtonsoft.Json.Linq.JObject.Parse(resultContent);
        }
        catch (Exception GettingError)
        {
            throw;
        }
    }
}

我现在所做的只是想要JSON数据,我可以通过以下方式访问它来获得一条记录的值:obj2.meta(将给出meta的值)。

我可以做些什么来提取特定记录?任何想法或建议都会很棒。

1 个答案:

答案 0 :(得分:1)

您必须针对您的特定目的进行优化,但如果您只是想找到您正在寻找的具有纬度和经度的节点,那么这就行了。

for( int x = 0; x < obj2.data.Count; x++)
{
   var y = obj2.data[x].Location.Latitude;
   var z = obj2.data[x].Location.Longitude;
   if (y.Value == desiredLat && z.Value == desiredLong)
   {
       return obj2.data[x];
   }
}