我正在尝试使用newtonsoft包从JSON文件(具有多边形坐标的STL文件的一部分)到数组或对象的pos'x'和'y',但是没有成功。
查看原始文件并按JSON online
转换我已阅读this,但却给了我很多错误。
你能给我一些提示或示例吗?
提前致谢
try
{
using (StreamReader reader = new StreamReader("test.json"))
{
json = reader.ReadToEnd();
List<vertex> items = JsonConvert.DeserializeObject<List<vertex>>(json);
}
dynamic array = JsonConvert.DeserializeObject(json);
foreach (var vert in array)
{
Console.WriteLine("{0} {1}", vert.x, vert.y);
}
}
catch(Exception ex)
{
MessageBox.Show(ex.ToString());
}
public class vertex
{
public double x,y;
}
答案 0 :(得分:0)
用于反序列化到您正在使用的类中的文件应采用
格式[{ "x" : 1.3214, "y" : 0.13241},{ "x" : 3.4324, "y" : 0.324}]
为了反序列化你拥有的文件,它应该有一个类:
public class Coordinates {
public decimal Z { get; set; }
public List<Point> Polygons { get; set; }
}
public class Point{
public List<vertex> points { get; set; }
}
public class vertex{
public List<decimal> Vertices { get; set; }
public decimal x { get {return Vertices?[0]} }
public decimal y { get {return Vertices?[1]} }
}
答案 1 :(得分:0)
这非常有效;)
public class Polygonn
{
public List<List<double>> points { get; set; }
public string type { get; set; }
}
public class RootObject
{
public double z { get; set; }
public List<Polygonn> polygons { get; set; }
}
string data = System.IO.File.ReadAllText("backup.json");
RootObject json = JsonConvert.DeserializeObject<RootObject>(data);
json.polygons[polygon].points[0].ElementAt(0)
谢谢大家! 此致