RestBody,在C#中创建Json负载会导致冲突,因为键是C#关键字
我正在使用RestSharp创建RestRequest 这看起来非常简单和直接 但我注意到的问题是,在开发将成为有效负载主体一部分的对象时,一个键被称为“params” 如果你不知道。Params是一个关键字。我如何创建有效负载以正确实现,尽管键可能是C语言的专用键RestBody,在C#中创建Json负载会导致冲突,因为键是C#关键字,c#,anonymous-types,C#,Anonymous Types,我正在使用RestSharp创建RestRequest 这看起来非常简单和直接 但我注意到的问题是,在开发将成为有效负载主体一部分的对象时,一个键被称为“params” 如果你不知道。Params是一个关键字。我如何创建有效负载以正确实现,尽管键可能是C语言的专用键 var payload = new { data = "", command = new { name = "Foo", params = "Bar" } }; RestSha
var payload = new {
data = "",
command = new {
name = "Foo",
params = "Bar"
}
};
RestSharp.RestRequest request = new RestSharp.RestRequest(RestSharp.Method.POST);
request.Resource = "";
request.AddBody(payload);
var result = Client.Execute(request);
您可以将
@
放在参数之前:
我已经测试过了,输出的JSON将是
params
,没有@
,您只需将@
放在params之前:
我已经测试过了,输出的JSON将是
params
,没有@
代码中没有JSON负载。这是一个匿名类型定义,Complinsi在网上引用了其他示例,我同意,它不是json perse,它将在正文中被解析,这与json无关。这是用于创建的payload
只是一个对象,AddBody
可以序列化为JSON字符串,也可以不序列化为JSON字符串。问题是名为params
的属性与C#关键字同名。如果将其命名为int
或DateTime
,则会遇到同样的问题。代码中没有JSON负载。这是一个匿名类型定义,Complinsi在网上引用了其他示例,我同意,它不是json perse,它将在正文中被解析,这与json无关。这是用于创建的payload
只是一个对象,AddBody
可以序列化为JSON字符串,也可以不序列化为JSON字符串。问题是名为params
的属性与C#关键字同名。如果您将其命名为int
或DateTime
,您也会遇到同样的问题。
var payload = new {
data = "",
command = new {
name = "Foo",
@params = "Bar"
}
};