如何从 JSON 字符串中删除转义字符
How to remove escape characters from Json string?
我有一个c#方法,它调用另一个方法,该方法返回一个应该表示JSON的字符串。但是,字符串中包含转义字符:
public string GetPerson()
{
string person = repo.GetPerson(); //person is "{'"name'":jack,'"age'":'"54'"...
return person;
}
如果我尝试进行替换,则没有变化:
string person = repo.GetPerson().Replace(@"'""", ""); //person still has escape characters
当我在调试时尝试在文本查看器中查看人员时,转义字符不存在 - Visual Studio 会将它们撕掉。但是调用此方法的 javascript 确实在 ajax 响应中看到转义字符。
如果我尝试将人员字符串反序列化为我的 C# User 对象,它无法正确反序列化:
User user = JsonConvert.DeserializeObject<User>(person);
我有哪些选择?如何从 person 字符串中删除转义字符,或将其正确反序列化为 User 对象?
如果 Console.WriteLine(person) 在字符串周围显示这些反斜杠和引号(而不仅仅是里面的字符串和引号),则存在双重序列化问题。您可以先尝试将其反序列化为字符串,然后再反序列化为类型,如下所示:
User user = JsonConvert.DeserializeObject<User>(JsonConvert.DeserializeObject<String>(person));
此外,您可以尝试执行以下操作:
string person = repo.GetPerson().Replace(@"'""", @"""");
如果可以控制 API,请检查返回时是否存在双重序列化。ASP 执行默认序列化,因此通常不必返回带有对象预序列化的字符串。
对于webapi,请使用Ok(object),对于ASP MVC,请使用Json(object,requestBehavior)方法。
相关文章:
- 在JavaScript中输出转义字符
- 拼接未删除某些字符
- Javascript-正则表达式,用于在未转义字符上拆分字符串,例如|,但忽略|
- 如何从拼音编辑器中删除特殊字符
- Javascript和RegEx用于删除特殊字符
- 带有Ajax请求的Javascript JSON.parse函数n〃;新行转义字符
- 当按键不匹配时删除输入字符
- Php在csv输出文件中插入转义字符
- 删除给定字符前的多余空格
- TinyMCE 3.x仅在IE中转义字符
- JS如何捕获基于键入然后删除的字符的字段验证逻辑
- 如何使用Javascript为JSON转义字符
- 带有转义字符的Javascript子字符串
- 包括一个带有innerHTML转义字符的脚本
- Javascript 拆分删除 “:” 冒号字符
- 替换转义字符中的单个反斜杠
- innerhtml 忽略了 HTML 转义字符
- 需要从此字符串中删除前导字符(# 或 +)
- 如何从 JSON 字符串中删除转义字符
- 如何从PHP字符串中删除所有换行符和转义字符?