C#:如何构建类似于JSON的半结构化对象?

C#:如何构建类似于JSON的半结构化对象?,c#,json,poco,C#,Json,Poco,我想迭代一个2D数组contents[,],并构建一个类似JSON的对象作为一个函数。结构如下图所示。然后,这将被发送到服务器端点,由服务器端函数处理并存储到数据库中 在JavaScript中,这很简单,但这是因为类型是动态的。据我所知,在C#中构建sem结构化数据有两种选择: 创建此处提到的模型:然后转换为JSON 构建一个嵌套的哈希表(不是字典,因为在需要构建对象之前我不知道值的类型) 在C#中这样做的正常方式是什么?我还遇到了术语“POCO”,它似乎在某种程度上与第1点相对应 [

我想迭代一个2D数组
contents[,]
,并构建一个类似JSON的对象作为一个函数。结构如下图所示。然后,这将被发送到服务器端点,由服务器端函数处理并存储到数据库中

在JavaScript中,这很简单,但这是因为类型是动态的。据我所知,在C#中构建sem结构化数据有两种选择:

  • 创建此处提到的模型:然后转换为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
    ]
    

    似乎您的结构是刚性的,只有数据值不同,在这种情况下,您应该只使用对象类型作为值。然后,你的班级可以看起来像这样

    class MyObject
    {
        String Tablename;
        List<Field> myFields = new List<Field>();
        List<object> values = new List<object>();
    }
    
    类MyObject
    {
    字符串表名;
    List myFields=新列表();
    列表值=新列表();
    }
    

    或者,如果需要检索任何其他数据,您可以直接创建一个Json对象并解析它。

    c#具有动态类型:Json.Net库广泛用于处理Json:(312011通过nuget下载最新版本)。至于什么方法最适合你,我无法回答,因为这个问题太广泛了,我不知道你在做什么工作,你使用的数据,或者你的个人喜好是什么。可以采取很多方法。结构的哪一部分是动态的?我觉得这很有条理。您有一个名为的表,其中包含字段列表和将放入这些字段的数据。只是数据的值是不同的类型吗?还是我遗漏了什么?是的。只有值的类型不同于JavaScript,对象的概念略有不同,因为您可以直接构建它们。另一方面,C#似乎需要一个模板。我认为这个问题的答案可能对那些没有使用基于类的体系结构的OO语言背景的人有益。如果只是值是不同的类型,那么就使用“对象”类型。