我有一个类型为Facility的列表,类如下。
我想获取包含带参数的对象的列表,并将该数据序列化为json。
我当前实现的问题是我找回了一个类似于[],[],[],[],[]
的列表....但我的对象有其中可以访问的数据,如下所示: _facility[0].FacilityName
或_facility[0].FacilityId
。但是当我序列化时,我没有得到这些值。
如何向下钻取以获取此数据并将其序列化?
Facility.cs
public class Facility : List<Facility>
{
[Required]
[Display(Name = "Facility")]
public string FacilityName { get; set; }
public string FacilityIdSource { get; set; }
public Facility()
{
// Default Constructor
}
public Facility(string facilityName, string facilityIdSource)
{
this.FacilityName = facilityName;
this.FacilityIdSource = facilityIdSource;
}
}
调用代码来填充Facility类
public async Task<string> FacilitiesAsync()
{
ViewBag.SyncOrAsync = "Asynchronous";
var service = new FacilitiesService();
this._facilities = new List<Facility>();
_facilities = await service.GetFacilitiesBySourceDbAsync("param");
string json = "";
for (int i = 0; i < _facilities.Count; i++)
{
json += JsonConvert.SerializeObject(_facilities[i].FacilityName);
}
return json;
}
现在,我在jQuery的完整函数中看到了警告框中的json。如何为availableTags分配数组?
<script type="text/javascript">
$(function() {
var result = null;
$.ajax({
beforeSend: function () {
alert("Testing");
},
url: "FacilitiesAsync",
success: function (data) {
result = data;
},
complete: function () {
alert(result);
}
});
});
$(function () {
var availableTags = [
// Place results from JSON here
];
$("#tags").autocomplete({
source: availableTags
});
</script>
答案 0 :(得分:0)
默认序列化程序不会序列化实现ICollection的对象的属性。
从介绍XML序列化的文章:
http://msdn.microsoft.com/en-us/library/182eeyhh(v=vs.110).aspx
可以序列化的项目
可以使用XmLSerializer类序列化以下项目:
注意:只有集合是序列化的,而不是公共属性。
DataContractSerializer应该正确处理这个问题。