2012-01-16 2 views
0

다음 JSON을 C#으로 구문 분석하려고합니다. 나는 외부의 도서관을 피하려고 노력하고있다. 그러나 나는 그것을 사용해야 만한다. 지금 당장 다른 JSON 파일에서 구문 분석의 JavaScriptSerializer 메서드를 사용하고 있습니다. stackoverflow question 불행히도 Resource 아래에서 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

우리는 .net 4.0을 사용하고 있습니다. –

+0

음, 나는 내 자신을 굴려 냈습니다. JSON은별로 복잡하지 않지만 아마 하루 정도 지나면 끝내게 될 것입니다. –

답변

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 버전은 무엇