GET
调用REST API后,我得到了一个响应,如下所示:
[
{
"id": "ac:de:23:11:32:40",
"type": "uwb",
"name": "Employee tag 12",
"sensors": "string",
"fence_timeout": 5,
"exit_tolerance": 0,
"tolerance_timeout": 0,
"exit_delay": 100,
"properties": {}
}
]
我只想知道“测试”这个名字。
出于测试的原因,我写了下面的小程序。但不幸的是,我不能访问“名称”。
有没有人能给予我最后一个提示让这个工作?或者有没有更好的方法来访问json值?
using Newtonsoft.Json;
using System.Net.Security;
public class Program
{
public static void Main()
{
var obj = JsonConvert.DeserializeObject<List<Root>>(myJsonResponse);
//string name = obj. ??????????????????
}
}
public class MyArray
{
[JsonProperty("id")]
public string Id { get; set; }
[JsonProperty("name")]
public string Name { get; set; }
}
public class Root
{
[JsonProperty("MyArray")]
public List<MyArray> MyArray { get; set; }
}
4条答案
按热度按时间ccrfmcuu1#
你没有root属性,它只是一个数组。所以使用下面的代码
cbwuti442#
你需要在obj上迭代:
wsxa1bj13#
块引用变量数据=你的有效载荷.子对象().第一个或默认值(t =〉t.路径.等于(“你的属性”,字符串比较.顺序忽略大小写));变量列表=数据?.第一个.到对象();
dsf9zpds4#
如果列表总是包含1个元素,您可以轻松地实现这一点:
您正在将json对象反序列化为错误的类,应使用**
List<MyArray>
**链接
这将使用Linq获取列表的第一个元素,或者它的默认值。
使用数组索引
这将使用Linq获取列表的第一个元素,或者它的默认值。
如果要从数组中选择所有名称,则可以用途: