2013-06-19 70 views
-2

我在c#中有一个JSON对象。我想在c#中迭代它。对象中的所有属性都是动态的。在下面的代码tr5中,tr5td7,tr6,tr6td4是动态名称,它可以在另一个对象中更改。所以请帮助我。如何在c中迭代json对象#

"trList": { 
"tr5": { 
    "tdList": { 
    "tr5td7": { 
     "td": { 
     "outcomesName": "Weight (kg) Simvastatin", 
     "group": { 
      "groups": "Entry", 
      "dosage": "", 
      "n": "" 
     }, 
     "values": [ 
      { 
      "type": "Mean", 
      "symbolType": "x¯", 
      "value": "78.4" 
      }, 
      { 
      "type": "SE", 
      "symbolType": "S", 
      "value": "3.1" 
      } 
     ], 
     "pattern": { 
      "arr": [ 
      { 
       "values": "78.4", 
       "pattern": "number", 
       "type": "Mean", 
       "symbolType": "x¯" 
      }, 
      { 
       "values": "3.1", 
       "pattern": "number", 
       "type": "SE", 
       "symbolType": "S" 
      } 
      ], 
      "pat": "number-separator-number-separator-", 
      "tdId": "tr5td7" 
     }, 
     "note": "", 
     "outcomesNote": "", 
     "groupsNote": "" 
     } 
    }, 
    } 
} 
    "tr6": { 
    "tdList": { 
    "tr6td4": { 
     "td": { 
     "outcomesName": "Height (kg) Simvastatin", 
     "group": { 
      "groups": "Entry", 
      "dosage": "", 
      "n": "" 
     }, 
     "values": [ 
      { 
      "type": "Mean", 
      "symbolType": "x", 
      "value": "70.4" 
      }, 
      { 
      "type": "SE", 
      "symbolType": "S", 
      "value": "5" 
      } 
     ], 
     "pattern": { 
      "arr": [ 
      { 
       "values": "70.4", 
       "pattern": "number", 
       "type": "Mean", 
       "symbolType": "x" 
      }, 
      { 
       "values": "5", 
       "pattern": "number", 
       "type": "SE", 
       "symbolType": "S" 
      } 
      ], 
      "pat": "number-separator-number-separator-", 
      "tdId": "tr6td4" 
     }, 
     "note": "", 
     "outcomesNote": "", 
     "groupsNote": "" 
     } 
    }, 
    } 
} 

}

回答

0

dynamic对象实际上是只是一个Dictionary<string, object>,这样你就可以将它转换为这样的例如

IDictionary<string, object> dict = jsonObject; 
foreach (var item in dict) 
{ 
    Console.WriteLine("{0}: {1}", item.Key, item.Value); 
} 
0

您可以使用JSON.Net。

dynamic d = JObject.Parse("{number:1000, str:'string', array: [1,2,3,4,5,6]}"); 

Console.WriteLine(d.number); 
Console.WriteLine(d.str); 
Console.WriteLine(d.array.Count);