Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.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
Api C#删除JSON请求正文中的重复项_Api_Duplicates_Odata_Deserialization - Fatal编程技术网

Api C#删除JSON请求正文中的重复项

Api C#删除JSON请求正文中的重复项,api,duplicates,odata,deserialization,Api,Duplicates,Odata,Deserialization,我有一个端点: [HttpPost] [ODataRoute("some\odata\route")] public async Task<HttpResponseMessage> Func_Name(Request_Type request) { ... } 我在C#中看到的是: 就是说,总是最后一个。如何停止此自动删除并在反序列化后查看重复项?或者使端点在这样的调用中失败?如果删除Post方法的参数,可以尝试以下操作。否则C#将尝试自动映射实体,这将导致错误 var r

我有一个端点:

[HttpPost]
[ODataRoute("some\odata\route")]
public async Task<HttpResponseMessage> Func_Name(Request_Type request)
{
    ...
}
我在C#中看到的是:


就是说,总是最后一个。如何停止此自动删除并在反序列化后查看重复项?或者使端点在这样的调用中失败?

如果删除Post方法的参数,可以尝试以下操作。否则C#将尝试自动映射实体,这将导致错误

var rawJson = await this.Request.Content.ReadAsStringAsync();
这将得到未经验证的原始JSON,并包含三个属性:其中两个具有“Bob”键。不过,我认为这是个坏主意,我对你的用例感到困惑。

C#不可能将JSON转换为
字典
,因为字典的关键属性必须始终是唯一的。不用说,JSON在通过验证器运行时也被认为是无效的

{
    "Bob": "Doctor",
    "Tim": "Engineer",
    "Bob": "Sailor"
}

如果删除Post方法的参数,可以尝试以下操作。否则C#将尝试自动映射实体,这将导致错误

var rawJson = await this.Request.Content.ReadAsStringAsync();
这将得到未经验证的原始JSON,并包含三个属性:其中两个具有“Bob”键。不过,我认为这是个坏主意,我对你的用例感到困惑。

C#不可能将JSON转换为
字典
,因为字典的关键属性必须始终是唯一的。不用说,JSON在通过验证器运行时也被认为是无效的

{
    "Bob": "Doctor",
    "Tim": "Engineer",
    "Bob": "Sailor"
}

我最终切换到列表而不是字典

我最终切换到列表而不是字典