我正在使用RestSharp将简单的对象发布到Web API。
对象如下所示
rest
使用RestSharp发布的代码为
public class Subscription
{
[JsonProperty("subscriber")]
public Subscribe subscribe { get; set; }
}
[JsonObject(MemberSerialization.OptIn)]
public class Subscribe
{
[JsonProperty("mailinglist_ids")]
public string[] mailinglist_ids { get; set; }
[JsonProperty("subscriber")]
public Subscriber subscriber { get; set; }
}
[JsonObject(MemberSerialization.OptIn)]
public class Subscriber
{
[JsonProperty("foreign_id")]
public string foreign_id { get; set; }
[JsonProperty("email")]
public string email { get; set; }
[JsonProperty("first_name")]
public string first_name { get; set; }
[JsonProperty("last_name")]
public string last_name { get; set; }
}
我可以看到订阅对象正确地作为参数传递,但是该值被转义,这导致Web Api返回500错误。
我可以防止在C#中转义字符串吗?还是有其他方法可以发布数据
答案 0 :(得分:1)
避免手动构造JSON,这可能会导致错误,请使用AddJsonBody()
和表示要序列化数据的对象使用
将subscription
作为json添加到正文。
Subscription subscription = new Subscription() {
//..assuming it is populated
};
//...
//Serializes obj to JSON format and adds it to the request body.
request.AddJsonBody(subscription);