質問

私は JSON を初めて使用するため、API が提供するものを解析する必要があります。グーグルで簡単に検索してみたら出てきた JSON.NET, ので、今それを使用してこの JSON をリスト オブジェクトに解析しようとしています。初めに、 JSON.NET は使用するのに最適なライブラリですか このために?

これが私がやろうとしていることです:私は持っています アイテムというクラス, 、 例えば。JSON には多くの「要素」 (そう呼ばれる場合) があり、それぞれ 3つのフィールドが含まれています:id という名前の整数、name という名前の文字列、creationTime という名前の日時。これらすべての項目「要素」をjsonから解析したいと考えています。 アイテムオブジェクトのリストに. 。JSON に一致するように、Item クラスに 3 つのフィールドを作成しました。JSON.NET を使用してこれを行うにはどうすればよいでしょうか?

私はもう試した:

List<Item> fav = (List<Item>)new JsonSerializer().Deserialize(new JsonReader((TextReader)new StreamReader(response.GetResponseStream())));

しかし、うまくいかないようです。キャスト エラーが発生します。リスト エンクロージャに処理できないだけですが、JSON を 1 つの項目クラスに処理できるかどうかさえわかりません (JSON.NET は十分に文書化されていませんが、明日は徹底的にデバッグする予定です)。

JSON.NET で解析する方法を説明するサンプル コードをいくつか教えていただけますか?

ありがとう!

アップデート: ところで、言い忘れていましたが、私のプロジェクトは .NET Framework 2.0 をターゲットにする予定なので、JSON.NET のレガシー バージョンを使用しています。1.3.1.最小限のシステム要件を損なう一方で、プロジェクトを .NET 3.5 に変換する価値がある大きな利点はありますか?

更新 #2: JSON.NET の代わりに System.Web.Extensions.dll の JavascriptSerializer クラスを使用することにしました。それに関する質問が投稿されています。 ここ. 。ありがとう!

役に立ちましたか?

解決

.net Framework 3.5 にアップグレードし、ASP.Net MVC を使用して json サービスを構築することをお勧めします。見る:

http://msmvps.com/blogs/omar/archive/2008/10/03/create-rest-api-using-asp-net-mvc-that-speaks-both-json-and-plain-xml.aspx

他のヒント

この質問は約 3 年前のものであることは承知していますが、JSON ベースの API を構築したい場合は、NancyFx が素晴らしいということだけ付け加えておきたいと思います。 http://nancyfx.org/

編集:リクエストに応じた例ですが、非常に簡単です。開始するには、Nancyfx asp パッケージを NuGet 経由で Web プロジェクトに追加するだけです。(サブパス上の既存のアプリに追加する場合は、web.config に場所を追加する必要があります。それ以外の場合は、そのまま使用できます)

using Nancy;
using Nancy.ModelBinding;

public class Api : NancyModule
        {
            public Api()
            {
                Get["/api/order/create"] = x => 
                { 
                    var order = this.Bind<Order>(); //xml/json negotiated based on content header

                    var result = ... // Do stuff here

                    return Response.AsJson(result); 
                };
            }       
        }
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top