在 C# 中反序列化来自 IoT 设备的 Json 消息
Deserializing a Json message from an IoT Device in C#
我是 C# 的新手,我正在尝试反序列化来自 Raspberry Pi 运行 Azure IoT Edge 的消息(我正在使用 Visual Studio 2019 和 Newtonsoft.Json 和 Newtonsoft.Json.Linq)。但是,我无法从消息中检索值。
我试过将其转换为数组和对象,然后调用值。
消息如下:
messageBody = "[{\"Tag\": \"Apple\", \"Probability\": 0.0012170099653303623}]"
我使用以下几行对其进行反序列化:
JArray jsonArray = JArray.Parse(messageBody);
var jsonObjects = jsonArray.OfType<JObject>().ToList();
并且我想将属性 Tag 和 Probability 分别分配给 fruit 和 probability。
string fruit = jsonObjects.Tag;
var probability = jsonObjects.Probability;
但是,我收到错误 'List does not contain a definition for Probabilty' 和 'List does not contain a definition for Tag'
您可以添加新的 C# Class
public class JsonModel{
public string Tag {get;set;}
public double Probability {get;set;}
}
var model = JsonConvert.DeserializeObject<List<JsonModel>>(message);
我是 C# 的新手,我正在尝试反序列化来自 Raspberry Pi 运行 Azure IoT Edge 的消息(我正在使用 Visual Studio 2019 和 Newtonsoft.Json 和 Newtonsoft.Json.Linq)。但是,我无法从消息中检索值。
我试过将其转换为数组和对象,然后调用值。
消息如下:
messageBody = "[{\"Tag\": \"Apple\", \"Probability\": 0.0012170099653303623}]"
我使用以下几行对其进行反序列化:
JArray jsonArray = JArray.Parse(messageBody);
var jsonObjects = jsonArray.OfType<JObject>().ToList();
并且我想将属性 Tag 和 Probability 分别分配给 fruit 和 probability。
string fruit = jsonObjects.Tag;
var probability = jsonObjects.Probability;
但是,我收到错误 'List does not contain a definition for Probabilty' 和 'List does not contain a definition for Tag'
您可以添加新的 C# Class
public class JsonModel{
public string Tag {get;set;}
public double Probability {get;set;}
}
var model = JsonConvert.DeserializeObject<List<JsonModel>>(message);