【发布时间】:2019-03-03 05:32:18
【问题描述】:
我正在从我的 C# Windows 服务向 Amazon Web Services SNS 发送一条消息,以便可以从 iOS 应用程序接收它。
PublishRequest pubRequest = new PublishRequest();
pubRequest.TargetArn = arn;
pubRequest.Message = JsonConvert.SerializeObject(myMessage, Formatting.Indented);
pubRequest.MessageStructure = "json";
当我使用 JsonConvert.SerializeObject 时,这会产生一个消息字符串,如下所示:
{"default":"My Message. ","APNS":{"aps":{"alert":{"title":"My Title","body":"MyBody data"},"data":{"someDataTolookAt":"blahblah"}}}}
但我需要像这样转义 APNS 部分中的引号:
{"default":"My Message. ","APNS":{\"aps\":{\"alert\":{\"title\":\"My Title\","body\":\"MyBody data\"},\"data\":{\"someDataTolookAt\":\"blahblah\"}}}}
我该怎么做?
【问题讨论】:
-
编写自己的 JSON 转换器。 See example here
-
我只是好奇...为什么需要这样的序列化格式?这甚至不是一个有效的 json。你的意思是你希望 APNS 部分是一个字符串而不是一个对象?
-
出于某种原因,AWS 仅转发消息的默认部分,而不是 APNS 部分。从这个例子我相信反斜杠是必需的docs.aws.amazon.com/sns/latest/dg/SNSMobilePushAPNSAPI.html
-
@HarryBoy 如果您仔细查看文档,请提供有效的 json,并在 { 和 } 周围加上引号
标签: c# json.net amazon-sns jsonconvert