在 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);