Reddit APIをクエリしてスレッドの回答をループして、必要な答えを得ようとしています。しかし、私はAPI(https://www.reddit.com/comments/2pfyg8.json?sort=topを例として)を照会すると、2つのオブジェクトを持つjson配列を取得します。私はすべての実際のコメントを持つオブジェクトであり、最初のオブジェクトはスレッドそのものなので、オブジェクト番号2をループしたい。JSON配列をC#にデシリアライズ
これはC#の挑戦のように思えますが、少なくとも私の挑戦です。私はこれを達成するためにJSON.NET
またはNewtonsoft.Json
を使用し、これは私がこれまで持っているものです。
var commentPath = $"http://www.reddit.com/comments/{questionId}.json?sort=top";
HttpResponseMessage commentResponse = await client.GetAsync(commentPath);
var commentJson = await response.Content.ReadAsStringAsync();
var answers = JsonConvert.DeserializeObject<dynamic>(commentJson);
int commentCount = 0;
foreach (var answerContainer in answers[1].data.children) { }
私も、私はdynamic
の代わりに使用するための正しいタイプを生成するためにhttp://json2csharp.com/を使用しようとしましたが、のように誤っているように思われますよく
これは私が受け取るエラーです:
System.ArgumentException: Accessed JObject values with invalid key value: 1. Object property name expected. vid Newtonsoft.Json.Linq.JObject.get_Item(Object key) vid CallSite.Target(Closure , CallSite , Object , Int32)
誰かが私が探していますコメントを得るために、私の探求の私を助けることができたならば、私は非常に喜んでいるだろう。
はあなたを持っているが* JSONをVisual Studioのクラス*機能として貼り付けることを試みましたか? https://blogs.msdn.microsoft.com/webdev/2012/12/18/paste-json-as-classes-in-asp-net-and-web-tools-2012-2-rc/ –
@BenCottrellいいえしかし、私がそれを試みているとき、それはxmlとして自分のコンテンツを識別し、エラーを出します。 : – Ms01