我正在尝试使用 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();
}
最佳答案
类型转换 JToken
到 List<List<float>>
不会工作,因为 JToken
只有像 string
这样的简单值的显式转换运算符, int
, bool
, double
等(请参阅 here 以获取完整列表。)要转换复杂对象,您应该使用 ToObject
方法代替:
var bitmask = o2["bitmask"].ToObject<List<List<float>>>();
关于c# - 如何将 JToken 转换为嵌套的 float 列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55856684/