我需要像这样生成Json输出:
{
"01:30":{
"FREE":true,
"PRICE":3500
},
"03:00":{
"FREE":true,
"PRICE":2500
},
"13:30":{
"FREE":true,
"PRICE":2500
}
}
我的问题是时间字符串 - 从一个条目到另一个条目的动态。我无法弄清楚如何构造将被序列化为正确的json结果的c#类(模型)。 我的模型现在看起来像这样:
public class ScheduleViewModel
{
public ScheduleInnerViewModel TIME { get; set; }
}
public class ScheduleInnerViewModel
{
public bool FREE { get; set; }
public int PRICE { get; set; }
}
输出结果为(错误):
[
{"TIME":{
"FREE":true,
"PRICE":3500
}},
{"TIME":{
"FREE":true,
"PRICE":2500
}},
{"TIME":{
"FREE":true,
"PRICE":2500
}}
]
我使用标准方法从控制器生成json结果:
List<ScheduleViewModel> model = new List<ScheduleViewModel>();
//fill the model...
return this.Json(model, JsonRequestBehavior.AllowGet);
答案 0 :(得分:2)
尝试this post中未接受的答案。它使用Dictionary来创建属性名称(键),然后您可以使用ScheduleInnerViewModel作为值,如下所示:
function convertirDialogo(val_, type) {
val_ = val_.replace(/\\t/g, "<p class=\"create_t\"></p>");
console.log(type);
if (type !== 'DIALOG_STYLE_LIST') {
val_ = val_.replace(/\\n/g, "<br />");
}
for (var i = 0; i < val_.length; i++) {
var _list_created = false;
if (type === 'DIALOG_STYLE_LIST') {
var l_ = val_.charAt(i) == "\\" && val_.charAt(i + 1) == "n";
if (i == 0 && l_ == false) {
val_ = '<li>' + val_;
} else {
if (l_) {
val_ = val_.replace(/\\n/g, '<li>');
}
}
}
var start = i;
var end = i + 7
if (val_.charAt(start) == '{' && val_.charAt(end) == '}') {
var _col = val_.substring(start, end + 1);
var __col = _col.substring(1, _col.length - 1);
val_ = val_.replace(_col, "<span style=\"color: #" + __col + ";\">");
}
}
return val_;
}
答案 1 :(得分:2)
如果有一个字典,其中键是一个字符串(你的时间戳),而数据是你的模型类呢?
像:
wsO.Cells(wsO.Rows.Count, 1).End(xlUp).Offset(0, 5).Value = CDate(rCell.Offset(0, 5))
输出: