Как отправить JSON в IoT Hub без символа «\» - PullRequest
0 голосов
/ 14 мая 2019

Я пытаюсь отправить строку JSON в концентратор IoT Azure в следующем формате:

string format = "{\"info1\":\"info1Data\",\"info2\":\"info2Data\",\"info3\":{\"info3Data\":[]}}";

Проблема в том, что после сериализации строки в объект JSON он отправляет ее в концентратор IoT:

{\ "info1 \": \ "info1Data \", \ "info2 \": \ "info2Data \", \ "info3 \": {\ "info3Data \": []}}

Моя цель - удалить символ '\' из строки, отправленной в IoT, и с этой целью я попытался обойти эту проблему несколькими способами, например:

 var test= new string(format.ToCharArray());
 test.Trim();
 Console.WriteLine(test);
 testing = test.Replace(@"\", "");
 Console.WriteLine(testing);

OR

var charsToRemove = new string[] { @"\" };
 foreach (var c in charsToRemove)
 {
    testing = testing.Replace(c, string.Empty);
 }
 Console.WriteLine(testing);

Я использую VS2019 и до сих пор не могу удалить символ '\' из строки.

Заранее спасибо.

Ответы [ 2 ]

2 голосов
/ 14 мая 2019

Вы можете использовать анонимный тип, например:

var data = new { info1 = "info1Data", info2 = "info2Data", info3 = new { info3Data = new JArray() } };
var jsontext = JsonConvert.SerializeObject(data);
var message = new Message(Encoding.UTF8.GetBytes(jsontext));
await client.SendEventAsync(message);
0 голосов
/ 14 мая 2019

Попробуйте избежать кавычек, удвоив их ("") в необработанной строке (@), как описано в следующем посте:

Как добавить двойные кавычки в строку внутри переменной?

Для вашего примера:

string format = @"{""info1"":""info1Data"",""info2"":""info2Data"",""info3"":""info3Data"":[]}}";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...