Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.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# 如何创建类似列表的集合<;字符串,对象>;?_C#_Json_List_Serialization_Json.net - Fatal编程技术网

C# 如何创建类似列表的集合<;字符串,对象>;?

C# 如何创建类似列表的集合<;字符串,对象>;?,c#,json,list,serialization,json.net,C#,Json,List,Serialization,Json.net,我需要创建一个类似于list的列表,但我似乎无法做到这一点 我创建了一个类: public class Pair { public String Key { get; set; } public Object Value { get; set; } } 如果我制作一个列表,当我必须将其序列化为JSON时,我的问题就开始了,我会得到如下结果: { "Key": "version", "Value": "3.2.1" }, { "Key": "name",

我需要创建一个类似于
list
的列表,但我似乎无法做到这一点

我创建了一个类:

public class Pair
{
    public String Key { get; set; }
    public Object Value { get; set; }
}
如果我制作一个
列表
,当我必须将其序列化为JSON时,我的问题就开始了,我会得到如下结果:

{ "Key": "version", "Value": "3.2.1" }, { "Key": "name", "Value": "coordinateOperations" } { “密钥”:“版本”, “值”:“3.2.1” }, { “键”:“名称”, “值”:“协调操作” } 在我期待的时候:

{ "version": "3.2.1" }, { "name": "coordinateOperations" } { “版本”:“3.2.1” }, { “名称”:“协调操作” } 我的猜测是,我必须找到一种方法,要么让
列表
,要么控制序列化机制。后者看起来更难,看起来更像是一个骗局,而不是一个真正的解决方案


另外,我不能拥有
字典,因为我会有重复的键。也许更需要查找

为什么要创建自己的?您可以使用
KeyValuePair

List<KeyValuePair<String, Object>> nList = new List<KeyValuePair<String, Object>>();
List nList=新列表();

如果您的密钥是唯一的,您可以使用OWIN使用的,即
IDictionary

如何序列化?我相信有可能会提示转换器所需的格式。我使用JSON.Net进行序列化。在快速查看文档后,我找到了一种自定义自定义类序列化的方法:。应该有更简单的方法。这看起来很复杂!!只需使用上述方法创建一个自定义对象并重写.ToString()方法。。我想那就行了。我同意这个答案。您必须为所需的JSON创建一个自定义序列化器/反序列化器约定,否则.Net将不知道哪个属性去哪里,因为没有名为“version”或“name”的属性。关于如何开始此操作的任何提示?@ashutshraina我同样需要重复的“key”。既然这是最好的答案,你介意发布你的解决方案吗?谢谢。OP写道:“我不能有字典,因为我会有重复的键。”所以你的解决方案在这里不起作用。