Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.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_Dictionary - Fatal编程技术网

C# 以json格式传递字典时缺少值

C# 以json格式传递字典时缺少值,c#,json,dictionary,C#,Json,Dictionary,我想将字典列表传递给我的web服务。 现在,我将数据序列化为json格式,如下所示: { "properties":[ { "hobby":[ "singing", "swimming" ] }, { "hobby":[ "singing", "football", "basketb

我想将字典列表传递给我的web服务。 现在,我将数据序列化为json格式,如下所示:

{
   "properties":[
      {
         "hobby":[
            "singing",
            "swimming"
         ]
      },
      {
         "hobby":[
            "singing",
            "football",
            "basketball"
         ]
      }
   ],
   "userId":[
      "120",
      "121"
   ]
}
我的服务是:

void uploadUserProperty(Dictionary<string, string[]>[] properties,string[] userId);
调试时,我发现userId是正确的,但是属性没有键。
有人能解释一下吗?

你有重复的条目和键爱好,字典必须有唯一的键。您的JSON也表示数组数据,而不是字典。

您将属性声明为字典对象数组:dictionary[]properties。数组甚至一个列表只是一个枚举,虽然不那么严格,因为可以多次使用同一个对象。这意味着您不需要唯一标识每个项目,因此不需要ID。

这里的问题是什么?您的服务采用什么格式?参数的序列化是正确的。你所拥有的是一系列字典。你能举个例子说明数据应该是什么样子吗?是的,我想传递一个字典列表,在传递之前它是正确的,传递之后,字典中的值丢失了。你的字典有一个关键爱好和一个值。本例中的值是字符串[]的列表,该字符串被正确解析为JSON数组,如[singing、football、basketball]。这就是你的字典的价值,在我看来,它没有丢失。我不知道你的意思,我的意思是,最终结果准确地描述了你的输入。JSON没有问题。是的,我也认为JSON是正确的。但是我不知道为什么我可以在我的Web服务中获得值…但是用户ID是正确的,只有字典有一些问题…我真的不明白字典的问题是什么。如果您能更好地解释它,或者提供一个关于数据外观的示例,也许我们可以为您提供更多服务。在上述情况下,我将dictionary数组传递给我的web服务。当然,我想处理字典。但是当我调试时,我发现字典中没有键,这与我传递的数据不同。我传递的数据包含一些关键的爱好和价值,比如游泳,但我无法在我的web服务中获得这些