嵌套的JSON字符串,其中包含特殊字符到对象中



我有用户发送可能包含任何特殊字符的消息。我将这些数据视为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 /, , ^, &amp;, %, #'/"\,''!~"}]}'}

您的代码很好,但是您的用户需要更改他发送的消息实际上是JSON。JSON输入需要正确编码。

  • 如果您希望出现在字符串中,则在JSON字符串中显示为\
  • 如果您希望"出现在字符串中,则应显示为"
  • 如果您希望'出现在字符串中,则应出现为'

{ "MessageQueueInformation": '{"EntityId":"13","Action":"Add"}', "PostData": '{"listMessage":[{"message":"Unsuccessful case- aaa /, \, ^, &amp;, %, #'/"\\\,''!~"}]}'}

相关内容

  • 没有找到相关文章

最新更新