我使用了多个用 c# 编写的 API,效果很好。我想用一个接收匿名对象(我不想创建一个类)。当我尝试反序列化对象时遇到问题。
我有一个遵循此方案的 API,它在python
使用该json_dumps
函数调用时运行良好。但是当我尝试使用JSON.stringify
(来自 a 甚至 POSTMAN 时,我有一个 400 错误请求。
这是我的代码,我尝试了很多东西:
[WebInvoke(Method = "POST", UriTemplate = "myUrl")]
[OperationContract]
public Message myMethod(object objectSentByUser)
{
var perso = JsonConvert.DeserializeObject<dynamic>(objectSentByUser.ToString());
JsonConvert.DeserializeObject<dynamic>
等待一个字符串,我试过:
- 在我这样做时的参数中指定objectSentByUser
为字符串,myMethod
我什至没有输入方法就得到了 400(我尝试发送 JSON,添加引号,发送字符串等......)
- 与 一起投射(string)objectSentByUser
,它不起作用
- 使用该toString()
方法,这会导致下一个错误:解析值时遇到意外字符:S. Path '', line 0, position 0 这很正常,因为objectSentByUser.toString()
返回“System.Object”(但是为什么使用时它会起作用用python json_dump?)
此代码在使用返回如下对象的 python 函数 json_dump 调用时有效:
"{\\"key1\\":\\"value1\\",...}"
从 Postman 我发送了一个经典的 POST,正文中包含application/json
ascontentType
和 valid JSON
(在关于 stackoverflow 的另一个讨论中找到的网站上验证)
非常感谢你的帮助
再见