为了账号安全,请及时绑定邮箱和手机立即绑定

如何将 JToken 转换为嵌套的浮点数列表?

如何将 JToken 转换为嵌套的浮点数列表?

C#
慕莱坞森 2022-12-31 13:11:02
我正在尝试使用 C# 读取一个包含三个字段的 JSON 文件:“名称”和“ID”,两个字符串,以及“位掩码”,它是以嵌套列表格式从 Python 中写出的[[0.0, 0.0], [1.0, 1.0], ...].读取文件和访问字符串字段没有问题,但我一直无法破解“位掩码”字段。最终我希望能够将字段放入字典中,以便稍后处理到数据库中。我是 C# 的新手,所以我的方法有点天真。我试图将它作为一个List<List<float>>没有运气,因为看起来你必须迭代地添加每个子列表。我在 C# 中尝试做的事情甚至可能吗?这是我的基本读入代码(摘自另一篇非常有用的帖子!)。我可以访问写出 JSON 的 Python 代码,因此如果列表有不同的格式可以读取,我可以重新处理它们。using (StreamReader file = File.OpenText(@"C:\Users...\data2.json"))using (JsonTextReader reader = new JsonTextReader(file)) {     JObject o2 = (JObject)JToken.ReadFrom(reader);    string n = (string)o2.SelectToken("name");     Console.WriteLine("Name field from JSON: {0}", n);     Console.ReadKey(); }
查看完整描述

1 回答

?
largeQ

TA贡献2039条经验 获得超7个赞

将 a强制转换为JTokena 是List<List<float>>行不通的,因为JToken只有针对简单值的显式转换运算符,例如stringintbool,double等。(完整列表请参见此处。)要转换复杂对象,您应该改用以下ToObject方法:

var bitmask = o2["bitmask"].ToObject<List<List<float>>>();


查看完整回答
反对 回复 2022-12-31
  • 1 回答
  • 0 关注
  • 150 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信