gpt4 book ai didi

c# - 将 List 转换为 JSON

转载 作者:行者123 更新时间:2023-11-30 18:31:32 25 4
gpt4 key购买 nike

我有一个设施类型列表,下面是类。

我想获取包含带参数对象的列表,并将该数据序列化为 json。

我当前实现的问题是我得到一个如下所示的列表:[]、[]、[]、[]、[] ....但是我的对象 其中的数据,我可以像这样访问:_facility[0].FacilityName_facility[0].FacilityId。但是当我序列化它时,我没有得到这些值。

我如何深入获取这些数据并将其序列化?

设施.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>

最佳答案

默认序列化程序不会序列化实现 ICollection 的对象的属性。

来自介绍 XML 序列化的文章:

http://msdn.microsoft.com/en-us/library/182eeyhh(v=vs.110).aspx

可以序列化的项目

可以使用 XmLSerializer 类序列化以下项目:

  • 公共(public)类的公共(public)读/写属性和字段。
  • 实现 ICollection 或 IEnumerable 的类。

注意:只有集合被序列化,而不是公共(public)属性。

  • XmlElement 对象。
  • XmlNode 对象。
  • 数据集对象。

DataContractSerializer 应该正确处理这个问题。

关于c# - 将 List<CustomObject> 转换为 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19987704/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com