我正在使用Newtonsoft.Json创建Json以更新向索引添加项,但在POST请求时我收到以下错误:
{"error":{"code":","message":"请求无效。","innererror":{
我知道这个错误发生在我正在序列化的数据中的一些字符串中的一些非字母字符上。字符串数据来自SQL,所以我猜这与编码有关,但我无法理解。
当我检查JSON字符串,并将其放入Fiddler中手动构建具有相同数据的请求时,一切都很好。
有人知道可能是什么问题吗?我该如何解决这个问题?
经过更多的挖掘,我找到了自己的解决方案。
在序列化选项中添加"StringEscapeHandling.EscapeNonAscii"解决了问题:
jsonSettings = new JsonSerializerSettings
{
Formatting = Newtonsoft.Json.Formatting.Indented,
ContractResolver = new CamelCasePropertyNamesContractResolver(),
DateTimeZoneHandling = DateTimeZoneHandling.Utc,
StringEscapeHandling = StringEscapeHandling.EscapeNonAscii
};