gpt4 book ai didi

c# - 以编程方式构建表以导出到 JSON 或从 JSON 导入?

转载 作者:行者123 更新时间:2023-11-30 15:24:21 24 4
gpt4 key购买 nike

我正在使用 EntityFramework、C# 和 MVC 构建网络应用程序。我需要像这样在 RAM 中创建一个动态表

COL1 |列2 | COL3...等等
1 |瓦尔 |瓦尔
2 |瓦尔 |瓦尔
然后我需要能够以下列格式将其读/写到 JSON:

[
{id:1, COL1: "Val", COL2: "Val", COL3: "Val" },
{id:2, COL1: "Val", COL2: "Val", COL3: "Val" }
];

我需要能够以这种格式读写表格,轻松地动态添加列和行。

我曾尝试使用 DataTable 但在序列化时会导致此错误:

Error: A circular reference was detected while serializing an object of type 'System.Reflection.RuntimeModule'.

如有任何建议,我们将不胜感激。

编辑:这是我用来构建导致错误的表的代码,即使在使用 JSON.NET 序列化时也是如此:

DataTable datatable = new DataTable();

datatable.Columns.Add("DBID");
datatable.Columns.Add("ROW");
datatable.Columns.Add("ID");

DataRow row = datatable.NewRow();
row["DBID"] = "Test";
row["ROW"] = "Test";
row["ID"] = "Test";
datatable.Rows.Add(row);

string json = JsonConvert.SerializeObject(datatable, Formatting.Indented); // <- Error here

return Content(json, "application/json");

编辑 2 - 解决方案:

string json = JsonConvert.SerializeObject(datatable, Formatting.Indented,
new JsonSerializerSettings()
{
ReferenceLoopHandling = ReferenceLoopHandling.Ignore,
PreserveReferencesHandling = PreserveReferencesHandling.None
}
);

感谢艾伦和 T.S.为我指明了正确的方向,以及所有回答的人!

最佳答案

如许多其他帖子中所述,您始终可以添加对公开以下方法的 JSON.NET 的引用:

var json = JsonConvert.SerializeObject(dataTableToConvertToJSON, 
Formatting.Indented);

更新:

试试这个代码。它应该处理您遇到的错误:

var dataTableToConvertToJSON = JsonConvert.SerializeObject(dataTableToConvertToJSON, 
Formatting.Indented,
new JsonSerializerSettings
{
ReferenceLoopHandling = ReferenceLoopHandling.Ignore
});

要将 Json 作为字符串返回,请使用:

return json;

要返回一个 Json 对象,使用这个:

return Json(dataTableToConvertToJSON, JsonRequestBehavior.AllowGet);

关于c# - 以编程方式构建表以导出到 JSON 或从 JSON 导入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32895846/

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