【发布时间】:2019-06-24 20:49:02
【问题描述】:
我是 C# 新手,我正在尝试反序列化来自运行 Azure IoT Edge 的 Raspberry Pi 的消息(我正在使用带有 Newtonsoft.Json 和 Newtonsoft.Json.Linq 的 Visual Studio 2019)。但是,我无法从消息中检索值。
我尝试将其转换为数组和对象,然后调用值。
消息如下:
messageBody = "[{\"Tag\": \"Apple\", \"Probability\": 0.0012170099653303623}]"
我使用以下几行来反序列化它:
JArray jsonArray = JArray.Parse(messageBody);
var jsonObjects = jsonArray.OfType<JObject>().ToList();
我想将属性标签和概率分别分配给水果和概率。
string fruit = jsonObjects.Tag;
var probability = jsonObjects.Probability;
但是,我收到错误消息“列表不包含概率的定义”和“列表不包含标签的定义”
【问题讨论】:
-
创建一个带有字符串和小数属性的新类,使用相同的名称(标签和概率)。然后使用 JsonConvert.DeserializeObject
(messageBody)
标签: c# arrays json json-deserialization