[英]Json Deserialize C#
我想解析这个json文件。
{ “特征”:[{ “类型”: “功能”, “几何”:{ “类型”: “多边形”, “坐标”:[[[26.4217861898109,40.127607984644],[26.4219934821323,40.1275230229872],[26.4218810759267,40.1273800013679 ],[26.4216801413981,40.1274730404221],[26.4217861898109,40.127607984644]]],“properties”:{“ParselNo”:“1”,“Alan”:“340.48 m2”,“Mevkii”:“ - ”,“Nitelik” : “ARSA”, “阿达”: “698”, “IL”: “恰纳卡莱”, “ILCE”: “MERKEZ”, “Pafta”: “16”, “Mahalle”: “巴尔巴罗斯”}}],“类型“:” 的FeatureCollection”, “CRS”:{ “类型”: “姓名”, “属性”:{ “名称”: “EPSG:4326”}}}
我试试这段代码:
string fileName = file.FileName;
string json = System.IO.File.ReadAllText(fileName);
dynamic stuff = JsonConvert.DeserializeObject(json);
string s1 = Convert.ToString(stuff.features.Count);
string s2 = stuff.properties.ParselNo;
MessageBox.Show(s1);
MessageBox.Show(s2);
s1正在工作,但s2给出了错误。 我该如何解决?
我希望得到这样的:
Coordinates[] coordinates = [(26.xx, 40.xx), (26.xx,40.xx) ... ]
ParselNo = 1
Alan = 340.48
Nitelik = Arsa
Ada = 698
İl = Çanakkale
İlçe = Merkez
Pafta = 16
dat_name = EPSG:4326
我能做什么?
如果你正确格式化你的json,我相信
stuff.features.properties.ParselNo;
应该得到Parse1No
{
"features":[
{
"type":"Feature",
"geometry":{
"type":"Polygon",
"coordinates":[
[
[
26.4217861898109,
40.127607984644
],
[
26.4219934821323,
40.1275230229872
],
[
26.4218810759267,
40.1273800013679
],
[
26.4216801413981,
40.1274730404221
],
[
26.4217861898109,
40.127607984644
]
]
]
},
"properties":{
"ParselNo":"1",
"Alan":"340.48 m2",
"Mevkii":"-",
"Nitelik":"Arsa",
"Ada":"698",
"Il":"Çanakkale",
"Ilce":"Merkez",
"Pafta":"16",
"Mahalle":"Barbaros"
}
}
],
"type":"FeatureCollection",
"crs":{
"type":"name",
"properties":{
"name":"EPSG:4326"
}
}
}
根据json
你提供的功能是List<Feature>
所以你不能访问像stuff.features.properties.ParselNo
这样的列表属性它应该是
stuff.features[0].properties.ParselNo
我使用的features[0]
因为它会得到第一个feature
从列表中features.Count
将返回的数量features
的list
,你可以使用http://json2csharp.com/检查您的json
编辑
关于你的第二个问题应该是这样的
List<List<double>> s2 =stuff.features[0].geometry.coordinates[0].ToObject<List<List<double>>>();
var firstcordinates = s2[0];
它将从数组中获取坐标,而s2[0]
将从列表中获取第一个坐标
这段代码工作:stuff.features [0] .properties.ParselNo但不要这样:stuff.features [0] .geometry.coordinates [0];
我不明白:( 错误代码..
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.