我正在尝试使用以下格式将JSON字符串发送到Azure IoT中心:
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,但仍然无法从字符串中删除'\'字符。
谢谢。
答案 0 :(得分:2)
您可以使用匿名类型,例如:
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);
答案 1 :(得分:0)
尝试通过在原始字符串(@)中将引号(“”)加倍来对引号进行转义,如下文所述:
How to add double quotes to a string that is inside a variable?
例如:
string format = @"{""info1"":""info1Data"",""info2"":""info2Data"",""info3"":""info3Data"":[]}}";