【发布时间】:2017-01-11 12:10:21
【问题描述】:
我想遍历一个 2D 数组 contents[,],然后构建一个类似 JSON 的对象。结构如下图。然后将其发送到服务器端点,由服务器端函数处理并存储到数据库中。
在 JavaScript 中这很简单,但那是因为输入是动态的。据我所知,在 C# 中构建 sem 结构化数据有两种选择:
- 按照此处所述创建模型:Convert C# Object to Json Object,然后转换为 JSON
- 构建嵌套哈希表(不是字典,因为在需要构建对象之前我不会知道值的类型)
在 C# 中执行此操作的正常方法是什么?我也遇到过“POCO”这个词,它似乎有点对应于第 1 点。?
[
{
tableName: someName,
fields: [ordered, list, of, field, names],
values: [
[ordered, list, of, cell, row, values],
[ordered, list, of, cell, row, values],
[ordered, list, of, cell, row, values]
]
},
{
tableName: someName,
fields: [ordered, list, of, field, names],
values: [
[ordered, list, of, cell, row, values],
[ordered, list, of, cell, row, values],
[ordered, list, of, cell, row, values]
]
},
etc
]
【问题讨论】:
-
c# 具有动态类型:msdn.microsoft.com/en-us/library/dd264736.aspx JSON.Net 库被广泛用于操作 JSON:newtonsoft.com/json(通过 nuget 下载了 3,120,111 次最新版本)。至于哪种方法最适合你,我无法回答,因为这个问题太宽泛了,我不知道你在做什么,你使用的数据,或者你的个人喜好是什么。有很多方法可以采用。
-
结构的哪一部分是动态的?这对我来说看起来很有条理。您有一个具有名称的表,其中包含字段列表以及将放置到这些字段中的数据。仅仅是数据的值是不同的类型吗?还是我错过了什么?
-
是的。只有值的类型不同
-
来自 JavaScript,对象的概念略有不同,因为您可以直接构建它们。另一方面,C# 似乎需要一个模板。我认为这个问题的答案可能对没有使用基于类的架构的 OO 语言背景的人有益。
-
如果只有值是不同的类型,那么只需使用“对象”类型。