我有用户发送可能包含任何特殊字符的消息。我将这些数据视为JSON字符串。我正在尝试将字符串置于对象中,然后将其传递给我的WebAPI。
但是,我无法成功地对数据进行估算。我创建了一个简单的C#控制台应用程序来测试此功能。
public class Program
{
public static void Main()
{
Console.WriteLine("Enter input:");
string data = Console.ReadLine();
// One of the SO article says,
// If the JSON is created using a JSON serializer, then all the
// special characters will be escaped properly
var sData = JsonConvert.SerializeObject(data);
MappedData mappedData = JsonConvert.DeserializeObject<MappedData>(dData.ToString());
Console.WriteLine(mappedData.PostData); //these need to be posted to webapi
Console.ReadKey();
}
}
public class MappedData
{
[JsonProperty("PostData")]
public string PostData { get; set; }
[JsonProperty("MessageQueueInformation")]
public string MessageQueueInformation { get; set; }
}
文章引用:在此处输入链接描述
有效的测试数据(无特殊字符): { "MessageQueueInformation": '{"EntityId":"13","Action":"Add"}', "PostData": '{"listMessage":[{"message":"Successful case 1"}]}'}
这是错误的失败:Bad JSON escape sequence: ,.
{ "MessageQueueInformation": '{"EntityId":"13","Action":"Add"}', "PostData": '{"listMessage":[{"message":"Unsuccessful case- aaa /, , ^, &, %, #'/"\,''!~"}]}'}
您的代码很好,但是您的用户需要更改他发送的消息实际上是JSON。JSON输入需要正确编码。
- 如果您希望
出现在字符串中,则在JSON字符串中显示为
\
。 - 如果您希望
"
出现在字符串中,则应显示为"
。 - 如果您希望
'
出现在字符串中,则应出现为'
。
{ "MessageQueueInformation": '{"EntityId":"13","Action":"Add"}', "PostData": '{"listMessage":[{"message":"Unsuccessful case- aaa /, \, ^, &, %, #'/"\\\,''!~"}]}'}