循环遍历c#中的json数组

我有一个json字符串,

{"objectType" : "Subscriber", "objectList":[{"firstName":"name1","email":"email@example.com","address":"exampleAddress"},{"firstName":"name2","email":"email2@example.com","address":"exampleAddress2"}]} 

我需要在我的C#代码中解析它。 我试过了,

 JavaScriptSerializer json_serializer = new JavaScriptSerializer(); object routes_list = json_serializer.DeserializeObject(myjson here); 

但我无法循环“objectList”数组。 怎么做?

 var jsonObj = new JavaScriptSerializer().Deserialize(json); foreach (var obj in jsonObj.objectList) { Console.WriteLine(obj.address); } public class ObjectList { public string firstName { get; set; } public string email { get; set; } public string address { get; set; } } public class RootObj { public string objectType { get; set; } public List objectList { get; set; } } 

提示:您可以使用此站点将您的json字符串转换为c#类

编辑

使用Json.Net

 dynamic jsonObj = JsonConvert.DeserializeObject(json); foreach (var obj in jsonObj.objectList) { Console.WriteLine(obj.address); } 
 var routes_list = (Dictionary)json_serializer.DeserializeObject(myjson); foreach (var record in routes_list) { Console.WriteLine(record); } 

这对我有用,基本上转换为JSON到YAML

  string JSONDeserialized {get; set;} public int indentLevel; private bool JSONDictionarytoYAML(Dictionary dict) { bool bSuccess = false; indentLevel++; foreach (string strKey in dict.Keys) { string strOutput = "".PadLeft(indentLevel * 3) + strKey + ":"; JSONDeserialized+="\r\n" + strOutput; object o = dict[strKey]; if (o is Dictionary) { JSONDictionarytoYAML((Dictionary)o); } else if (o is ArrayList) { foreach (object oChild in ((ArrayList)o)) { if (oChild is string) { strOutput = ((string)oChild); JSONDeserialized += strOutput + ","; } else if (oChild is Dictionary) { JSONDictionarytoYAML((Dictionary)oChild); JSONDeserialized += "\r\n"; } } } else { strOutput = o.ToString(); JSONDeserialized += strOutput; } } indentLevel--; return bSuccess; } 

用法

  Dictionary JSONDic = new Dictionary(); JavaScriptSerializer js = new JavaScriptSerializer(); try { JSONDic = js.Deserialize>(inString); JSONDeserialized = ""; indentLevel = 0; DisplayDictionary(JSONDic); return JSONDeserialized; } catch (Exception) { return "Could not parse input JSON string"; }