【发布时间】:2016-04-06 04:01:22
【问题描述】:
虽然我遇到了之前问过的相同主题,但我只是找不到合适的解决方案。
这是我发布到 Web api 控制器的示例 Json
{
"AppointmentId ":2079,
"manageaptarray":[
"VanId":6,
"Doctors":[
{"Id":1,"Name":Doc1},
{"Id":2,"Name":Doc2}
]
]}
这是我的 c# 类
public class ManageDoctorModel
{
public int Id { get; set; }
public int AppointmentId { get; set; }
public DateTime? AppointmentAt { get; set; }
public DateTime ScheduledAt { get; set; }
public int? ModifiedBy { get; set; }
public DateTime? ModifiedDateTime { get; set; }
public Nullable<bool> rCreate { get; set; }
public Nullable<bool> rUpdate { get; set; }
public Nullable<bool> rDelete { get; set; }
public Nullable<bool> rView { get; set; }
public jsonarray[] manageaptarray { get; set; }
}
public class jsonarray
{
public int VanId { get; set; }
public string VanName { get; set; }
public List<Doctorslist> Doctors { get; set; }
}
}
当我这样做时,我收到错误“无法将当前 json 数组(例如 1 2 3 )反序列化为类型......”
我在堆栈和其他论坛上搜索了大多数建议是反序列化 json 数组。所以这是我在我的 c# 代码中所做的
List<jsonarray> jsondata = JsonConvert.DeserializeObject<System.Collections.Generic.List<jsonarray>>(value.manageaptarray.ToString());
注意:值是我得到这个 json 的参数。
我尝试在我的类文件中进行一些更改,例如做 idictionary<string,object>,但这给了我同样的错误。
因为我正在使用 angularjs,所以我尝试了以下方法
json.stringify(jsondata)
angular.tojson(jsondata)
json.parse(jsondata)
但是没有运气。请在这里帮助我。据我所知,我认为在数组中传递数组是导致麻烦的问题。所以如果有人可以帮助我解决这个问题,那就是太好了,这样我就不会在这上面浪费更多时间了。
提前致谢,祝大家2016年新年快乐
请注意 mods :我知道这是一个重复的问题,但大多数问题都没有处理 json 中的数组数组。
【问题讨论】:
-
您的 JSON 无效。
-
有没有一种方法可以让我以正确的方式对其进行构图,例如修剪或删除括号?在 angularjs 中
标签: c# arrays angularjs json asp.net-web-api