我正在使用第三方地图来获取内部网中的某些图表功能。要填充区域,我需要传递一个格式化的对象集合(javascript):
simplemaps_usmap_mapdata.state_specific = {
AZ: {
name: "Arizona",
description: "The best state in the whole got damn union",
color: "#cecece",
hover_color: "default",
url: "",
},
NH: {
name: "New Hampshire",
description: "Small and insignificant",
color: "#f68831",
hover_color: "default",
url: "",
}
}
显然,如果它是一个对象数组会好得多,那么通过我的C#控制器返回一个List很简单,但由于它是一个对象集合,返回JSON的最佳方法是什么通过我的C#控制器以这种方式格式化?
答案 0 :(得分:2)
首先是一个班级:
class MyClass {
public string name {get;set;}
public string description {get;set;}
public string color {get;set;}
public string hover_color {get;set;}
public string url {get;set;}
}
然后,一本字典:
var result = new Dictionary<string, MyClass>();
添加到词典:
result["AZ"] = new MyClass { name="xyz"... };
最后,通过JSON方法返回字典:
return JSON(result);
答案 1 :(得分:0)
我假设您已经将控制器配置为返回JSON,这意味着您的对象类型是唯一需要设置的对象。
您可能已经意识到,此格式的问题是您需要定义一个对象,该对象具有其根级别的所有状态。当你不需要返回每一个州时,这很乏味而且可能有些过分。
要解决此问题,请使用C#中的session.createQuery(
"update APPOINTMENTS " +
"set BEGIN_DATE = :newBeginDate " +
"where " +
"(BEGIN_DATE is null or BEGIN_DATE > :newBeginDate) " +
"and ID = :id ")
.setParameter("newBeginDate", newBeginDate)
.setParameter("id", id)
.executeUpdate();
session.createQuery(
"update APPOINTMENTS " +
"set END_DATE = :newEndDate " +
"where " +
"(END_DATE is null or END_DATE < :newEndDate) " +
"and ID = :id ")
.setParameter("newEndDate", newEndDate)
.setParameter("id", id)
.executeUpdate();
类型或匿名对象。这将允许您定义当时所需的内容:
控制器方法的伪代码:
dynamic