JsonConvert.SerializeObject добавить обратную косую черту в кавычки - PullRequest
0 голосов
/ 27 сентября 2018

Я отправляю сообщение из моей службы 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\"}}}}

Как я могу это сделать?

1 Ответ

0 голосов
/ 27 сентября 2018

На самом деле API ожидает, что APNS сериализуется как строка, а не как json, и вам нужно преобразовать его значение в строку json.Создайте пользовательский конвертер JSON для этого конкретного свойства.

[JsonConverter(typeof(MyJsonConverter))]
someclass APNS {get;set;}

Этот конвертер также сделает JsonConvert.SerializeObject(APNSobject) =>, следовательно, у вашего json будет экранированная строка для объекта apns.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...