2011-02-09 13 views
5

XmlDocumentを使用してXMLをナビゲートするので、Json構造をナビゲートする必要があります。C#でJSONツリーをどのようにナビゲートできますか?

構造体が不明です。データを解析するためにノードを反復処理する必要があります。

これは可能ですか?
JavaScriptSerializerを使用して既知のタイプにデシリアライズすることができますが、これは有効なjsonを受け取ることができないためです。

私は.NET 3.5(SP1)を使用していますが、現在4.0にアップグレードすることはできません。
私は

+0

[Parse JSON in C#]の可能な複製(@stackoverflow.com/questions/1212344/parse-json-in-c) – Jason

+3

@Jason、これは複製ではありません、構造を知っているので、それを既知のタイプに脱シリル化することはできません。 – juan

+0

右リンクされた質問はJavaScriptSerializerではなくJSON.NETを中心に扱われます。前者は、結果として得られた構造体を歩き、検査することができます。後者は静的型用です。 – Jason

答えて

3

(素晴らしさがコードを作られている)、ダイナミック型を使用する.NET 4.0にアップグレードするこの記事を読む:

それはあなたにJSONを解析する方法を説明します内部に辞書を持つ動的オブジェクト。

だから、辞書を反復するとLINQがうまくいくでしょうか?

--- ORは、.NET 3.5にしているなら... ---;)

なぜあなたは "ToDictionary" のような拡張メソッドを実装していませんか?

JSONテキストを受け取って、後で正規表現を解析し、プロパティと値を辞書に分割することができます。すべてが推奨される拡張方法で行われます。

それはそれをどのように動作するかのサンプル:

IDictionary<string, object> deserializedJson = jsonText.ToDictionary(); 

は、あなたのニーズに合いましたか?

---これまでと同じようにもう一度試してみてください! ---

チェックCodePlexの上でこのオープンソースプロジェクト:

それは、LINQツーJSONあなたが読み書きできるように、JSONを持っています。

+0

私は.NET 3.5を使用していると言って忘れました(編集:しかし、私はそれを試してみよう、私はJavaScriptConverterのものを使用することができます) – juan

+0

Ooops!さて、私は私の答えを更新します –

+0

私の更新をチェック! –

関連する問題