如何在C#中将JSON中的未转义双引号转换为非转义双引号?
JSON字符串示例:
{
"Id": "4c8e6419-f094-48a0-94f8-752ccd7f0354",
"Description": "Anastasia Sfeir is a Mexican actress, singer, and model. She is best known for her roles in the telenovelas "La que no podia amar" and "Lo que la vida me robo"."
}
字符串
JSON字符串看起来像这样:
string json = "\n{\n \"Id\": \"78d4f53a-8614-4096-ace9-72a62dbcdbc3\",\n \"Description\": \"100 Thieves is an esports organization and lifestyle brand founded in 2016 by Matthew \"Nadeshot\" Haag.\"\n}\n";
型
我得到了例外,但一旦我删除了引号,它的工作。
result = System.Text.Json.JsonSerializer.Deserialize<Description>(response);
型
我无法控制响应,所以我希望有一个简单的内置方法来处理这个问题。
4条答案
按热度按时间3pmvbmvn1#
您提供的示例JSON payload没有双引号。JSON字符串中的引号使用反斜杠进行转义(例如:\”)。如果您的字符串示例与网站返回的字符串完全相同,则该字符串不是有效的JSON,常规JSON解析库无法读取。
如果示例字符串有转义引号,那么它不需要任何修改就可以正常工作。问题出在你试图解析的字符串上。|
带转义引号的有效JSON示例:
字符串
nhhxz33t2#
如果所有JSON字符串都只有Id和Description两个属性,可以尝试使用以下代码修复JSON字符串
字符串
vulvrdjw3#
使用postman先手动调用API,看看响应是否有效。
另一个问题是
the JSON string exactly looks like this:
。你是怎么看到json字符串的?通过调试器?I'm getting exceptions
-什么异常?提供调试细节。你是怎么得到HttpResponse的?你是怎么把它读成一个字符串的?请提供代码,这样我们可以帮助你。
zxlwwiss4#
受@Serge answer的启发,我设计了这个方法来清理描述。由于这个JSON是来自AI聊天机器人的回复,所以有时候它并不是100%正确,这会导致所使用的代币的金钱损失。
字符串