2012-01-16 22 views
0

次のJSONをC#に解析します。私は外の図書館を避けようとしていますが、私はそれらを使うことができなければなりません。今私は、JSONファイルから解析のJavaScriptSerializerメソッドを使用しています。stackoverflow question残念ながら、私はリソースの下にobjectXアイテムをいくつでも持つことができ、それらはすべて異なる名前を持っています。これを行う別の方法がありますか?JSONファイルの解析C#

{ 
    "FormatVersion" : "2010-09-09", 
    "Description" : "My JSON Description", 
    "Parameters" : { 
     "Product" : { 
      "Description" : "Product name", 
      "Type" : "String", 
      "Default" : "cs42" 
     }, 
     "DifferentObjectSize" : { 
      "Description" : "DifferentObjectSize", 
      "Type" : "String", 
      "Default" : "large" 
     }, 
     "ObjectSize" : { 
      "Description" : "Worker size", 
      "Type" : "String", 
      "Default" : "medium" 
     } 
    }, 

    "Resources" : { 

     "differentobject" : { 
      "Type" : "MyType", 
      "Properties" : { 
      "InstanceType" : { "Ref" : "DifferentObjectSize" } 
      } 
     }, 

     "object1" : { 
      "Type" : "MyType", 
      "Properties" : { 
      "InstanceType" : { "Ref" : "ObjectSize" } 
      } 
     }, 

     "object2" : { 
      "Type" : "MyType", 
      "Properties" : { 
      "InstanceType" : { "Ref" : "ObjectSize" } 
      } 
     }, 

     "object3" : { 
      "Type" : "MyType", 
      "Properties" : { 
      "InstanceType" : { "Ref" : "ObjectSize" } 
      } 
     }, 

     "object4" : { 
      "Type" : "MyType", 
      "Properties" : { 
      "InstanceType" : { "Ref" : "ObjectSize" } 
      } 
     }, 

    } 
} 
+0

以下のように、あなたの入力文字列を解析することができますJson.Netを使用すると思いますか? – Kane

+0

私たちは使用しています。ネット4.0 –

+0

まあ、私は自分自身を巻いた。 JSONはそれほど複雑ではありませんが、おそらく1日程度で完了します。 –

答えて

4

あなたは

JObject myObj = (JObject)JsonConvert.DeserializeObject(jsonString); 
foreach(var resource in myObj["Resources"]) 
{ 
    var props = resource.Children<JObject>().First(); 
    Console.WriteLine(props["Type"] + " " + props["Properties"]["InstanceType"]["Ref"]); 
} 
あなたがターゲットとしている.NETのバージョンは何