OpenLibrary.orgの書籍データベースに照会していますが、ISBNで書籍をリクエストすると、その結果にデータ構造の最も外側の部分としてISBN IDが含まれています。JSONレスポンスの最も外側のレベルを無視するにはどうすればよいですか?
{ "ISBN:0192821474":{"実際に気にするもの"} }
途中で取得するラッパークラスを生成すると、ラッパークラスがISBN0192821474という名前になっているので、複雑です。私はそのために "Xamasoft JSON Class Generator"を使用しています。
私ができる必要があるのは、一番外側の要素を「スキップ」して、それを自分の応答の実際の内容として取得することです。
これを行うにはどうすればよいですか?私はNewtonsoft.JsonとRestSharpを持っていて、どうにかして構造体をあるレベル深く「歩いて」そこから作業したいと思っています。
例えば、response.Contentが子ノードのコンテンツであれば、次のコードでうまく動作します。
var client = new RestClient("http://openlibrary.org");
var request = new RestRequest("/api/books?bibkeys=ISBN:0192821474&jscmd=data&format=json", Method.GET);
IRestResponse response = client.Execute(request);
var content = response.Content; // raw content as string
var x = JsonConvert.DeserializeObject<Example.OpenLibrary>(response.Content);
私はそれを解析するための正規表現を書くことができ確信しているが、はっきりそれはそれを行うには「正しい」方法はありませんので、私はいくつかのガイダンスを必要としています。
ここ
はデモですいくつかのドキュメントですNewtonsoft(http://www.newtonsoft.com/json/help/html/SerializingJSONFragments.htm)からの提案は、それを行う方法の明確な例を示しています:P – starlight54