Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用可变数量的字符串反序列化JSON对象?_C#_Json_Deserialization - Fatal编程技术网

C# 如何使用可变数量的字符串反序列化JSON对象?

C# 如何使用可变数量的字符串反序列化JSON对象?,c#,json,deserialization,C#,Json,Deserialization,下面我有一个JSON,它详细描述了一个对象数组,每个对象都有一个value属性 此values属性也是一个对象,但每个values对象可以包含任意数量的字符串: { "data": [ { "name": "xxxx", "values": { "one": "xxxx", "two": false } },

下面我有一个JSON,它详细描述了一个对象数组,每个对象都有一个
value
属性

values
属性也是一个对象,但每个
values
对象可以包含任意数量的字符串:

{
    "data": [
        {
            "name": "xxxx",
            "values": {
                "one": "xxxx",
                "two": false
            }
        },
        {
            "name": "xxyy",
            "values": {
                "three": "xxyy",
                "four": 1.25,
                "five": "xxyy"
            }
        },
        {
            "name": "xxyy",
            "values": {
                "six": "xxyy",
                "seven": "xxyyy",
                "eight": "xxyy",
                "nine": 1234,
                "ten": 0
            }
        }
    ]
}
有没有一种方法可以反序列化这个JSON对象,这样我就可以填充一个
对象,而不管这个
对象有多少属性


我正在使用
C#
Newtonsoft.Json
对其进行反序列化。

以下两个对象可用于正确反序列化Json:

public class AllData
{
    public Item[] Data { get; set; }
}

public class Item
{
    public string Name { get; set; }
    public IDictionary<string, object> Values { get; set; }
}
公共类所有数据
{
公共项[]数据{get;set;}
}
公共类项目
{
公共字符串名称{get;set;}
公共IDictionary值{get;set;}
}
然后可以使用以下行实际执行反序列化:

string json = /*json*/;
AllData data = JsonConvert.DeserializeObject<AllData>(json);
string json=/*json*/;
AllData data=JsonConvert.DeserializeObject(json);

您使用哪种语言进行反序列化?该语言是否为强类型?它(比如C#,它有
dynamic
,或者Newtonsoft的
JObject
)有一些类型可以用来处理通常的强类型吗?FWIW对于“值”项来说,这似乎不是一个很好的结构……如果项的数量不确定,作为一个数组会更好,尤其是因为他们似乎被编号了。您可以控制JSON的创建吗?很抱歉。我的问题中包含了一个语言标签,我无法控制JSON的创建。我只是在使用它。正如我所提到的(或者你可能会使用字典)……但在我看来,它比以数组形式交付要笨重得多,看起来可能更合适。