2017-07-11 8 views
0

私はJSONデータを解析するために必要なXamarin Androidアプリケーションをテストしていました。単純なJSONデータの解析は簡単でしたが、このJSONデータは少し複雑すぎて理解できません。私が何をしたいか特定の値(C#)に基づいて入れ子になったJSONオブジェクトの値を取得

LatitudeLongitudeに基づいて

、私は、その特定のJSONオブジェクトを抽出したいです。ここで

はデータです:https://pastebin.com/raw/7QDh2uZH

私がこれまで持っているもの:

私は今ちょうどJSONデータをdesirializesていると私のようなもので、それをアクセスすることによって、一つのレコードの値を取得することができますどのような
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; 
     } 
    } 
} 

obj2.meta(メタの価値を示す)。

特定のレコードを抽出するにはどうすればよいですか?どんなアイデアや提案も素晴らしいでしょう。

+0

使用org2.data [0]データ配列などの最初の要素にアクセスする...または構造化されたC#クラスにJSONをデシリアライズするためにあなたはまた、JSONの構造とデシリアライズに基づいてクラスを作成することができ – Jason

答えて

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]; 
    } 
} 
+0

クラスへのJSON。その後、他のC#オブジェクトと同様に扱うことができます。これは実際には望ましいアプローチです。次のようなものです。JsonConvert.DeserializeObject (jsonString); – DontThinkJustGo

+0

JSONノードを反復処理する方法がわかったら、これはかなり簡単でした。あなたに仲間ありがとう、これは命の恩人であり、提案に感謝しています:) – Xonshiz

関連する問題