怎么能生成下面的JSON格式
平时DataTable转换一下就可以生成JSON,像这种里面又嵌套的怎么能生成下面这种格式呢,
{
{name:"中国", province:[ { name:"黑龙江", cities:{ city:["哈尔滨","大庆"] },
{name:"广东", cities:{ city:["广州","深圳","珠海"] }
}
能否这样定义:
public class model {
public string name { get; set; }
public List<province> { get; set; }
}
[解决办法]
可以。看代码
protected void Page_Load(object sender, EventArgs e)
{
model m = new model()
{
name = "GD",
Province = new List<string>() { "A", "B" }
};
System.Web.Script.Serialization.JavaScriptSerializer serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
var output = serializer.Serialize(m);
}
public class model
{
public string name { get; set; }
public List<string> Province { get; set; }
}
[解决办法]
楼主那样的显示主要是设置Model的格式,参考
class Program
{
static void Main(string[] args)
{
Model m = new Model();
//城市
List<CityModel> cityList = new List<CityModel>();
CityModel city = new CityModel();
city.city.Add("哈尔滨");
city.city.Add("大庆");
//省
List<Province> proList = new List<Province>();
Province p = new Province();
p.Name = "黑龙江";
p.cities = city;
proList.Add(p);
//Model
m.Name = "中国";
m.Province = proList;
string json = SerializeObject(m);
Console.WriteLine(json);
Console.ReadLine();
}
/// <summary>
/// 序列化
/// </summary>
/// <param name="obj"></param>
/// <returns></returns>
public static string SerializeObject(object obj)
{
return JsonConvert.SerializeObject(obj);
}
}
public class Model
{
/// <summary>
/// 名称
/// </summary>
private string name;
public string Name
{
get { return name; }
set { name = value; }
}
/// <summary>
/// 省
/// </summary>
private List<Province> province;
public List<Province> Province
{
get { return province; }
set { province = value; }
}
}
public class Province
{
string proName;
public string Name
{
get { return proName; }
set { proName = value; }
}
private CityModel _cities;
public CityModel cities
{
get { return _cities; }
set { _cities = value; }
}
}
public class CityModel
{
private ArrayList _city = new ArrayList();
public ArrayList city
{
get { return _city; }
set { _city = value; }
}
}