话不多说,直接上代码,不复杂。
代码是解析的一级菜单和二级菜单,如果有三级以上的菜单就可以考虑做成递归形式的。
string JsonData = "{\"count\":1,\"list\":[{\"MenuID\":2,\"MenuName\":\"NS\",\"MenuCount\":2,\"MenuList\":[{\"MenuID\":3,\"MenuName\":\"NS_Edit\",\"MenuRules\":\"1000\"},{\"MenuID\":22,\"MenuName\":\"NS_NL\",\"MenuRules\":\"1000\"}]}]}";
var MenuList = JsonConvert.DeserializeObject<MenuList>(JsonData);
foreach (var key in MenuList.list)
{
Response.Write(key.ToString()+"<br />");
var Menu = JsonConvert.DeserializeObject<Menu>(key.ToString());
Response.Write("MenuID:" + Menu.MenuID + "<br />");
Response.Write("MenuName:" + Menu.MenuName + "<br />");
if (Menu.MenuCount == 0)
{
Response.Write("MenuRules:" + Menu.MenuRules + "<br />");
}
else
{
Response.Write("MenuCount:" + Menu.MenuCount + "<br />");
for (int i = 0; i < Menu.MenuCount; i++) {
var s_MenuList = JsonConvert.DeserializeObject<Menu>(Menu.MenuList[i].ToString());
Response.Write("MenuID:" + s_MenuList.MenuID + "<br />");
Response.Write("MenuName:" + s_MenuList.MenuName + "<br />");
Response.Write("MenuRules:" + s_MenuList.MenuRules + "<br />");
}
}
}
}
public class MenuList
{
public int count;
public ArrayList list;
}
public class Menu
{
public int MenuID;
public string MenuName;
public int MenuCount;
public ArrayList MenuList;
public string MenuRules;
}