2017-01-26 1 views
2

を使用していくつかの奇妙なJSONをデシリアライズ:は、私はJSON文書は次のようになり、ベンダーから来ていC#

{ 
    "content": [{ 
     "name": "Windows 8.1 x64", 
     "id": "Windows81x64", 
     "components": { 
      "Windows81x64": { 
       "propertyGroups": ["VirtualWindows81x64"], 
       "dependsOn": [], 
       "data": { 
        "provisioning_workflow": { 
         "fixed": { 
          "id": "WIMImageWorkflow", 
          "label": "WIMImageWorkflow" 
         } 
        }, 
        "memory": { 
         "default": 2048, 
         "min": 2048, 
         "max": 16384 
        } 
       } 
      } 
     } 
    }] 
} 

このドキュメントのほとんどは、しかし、そこに、典型的なDataContractSerializerを使用してオブジェクトにデシリアライズすることはかなり簡単です。いくつかのキー/値は、私は "ベストプラクティス"が何であるか分かりません。

"コンポーネント"キーを見ると、その後の最初のキーは "Windows81x64"となります。このキーはドキュメントごとに変更でき、任意の値にすることができます。それはほとんどコレクションの '名前'のプロパティにする必要がありますが、私はそれを制御することはできません。さらに、 'Windows81x64'キーの中には 'data'という別のプロパティがあります。ベンダーによると、データの価値は「匿名」です。ですから、基本的には何でもかまいません。

ドキュメントのこれらの部分については、これをカスタムオブジェクトに逆シリアル化するための最良のアイデアはありますか?ありがとうございました。

答えて

2

あなたはDictionary<string, object>

のような動的なものをデシリアライズすることができますそれとも、値の型を知っていれば、辞書のキーは名前だろうどこに

+0

ありがとう(あなたのケースWindows81x64で)Dictionary<string, ValueType>を使用することができます。 DIdはそれがそれほど単純ではないことを認識しません。 :) –

関連する問題