我通过一个REST服务返回了一个JSON对象,其结构如下:{
"results" : [
{
"layerId" : <layerId1>,
"layerName" : "<layerName1>",
"value" : "<value1>",
"displayFieldName" : "<displayFieldName1>",
"attributes" :
{
"<fieldName11>" : <fieldValue11>,
"<fieldName12>" : <fieldValue12>
},
"geometryType" : "<geometryType1>",
"geometry" : {<geometry1>}
},
{
"layerId" : <layerId2>,
"layerName" : "<layerName2>",
"value" : "<value2>",
"displayFieldName" : "<displayFieldName1>",
"attributes" :
{
"<fieldName21>" : <fieldValue21>,
"<fieldName22>" : <fieldValue22> },
"geometryType" : "<geometryType2>",
"geometry" : {<geometry2>}
}
]
}下面是一个返回的示例:
{
"results" : [
{
"layerId" : 3,
"layerName" : "Cities",
"value" : "Joe City",
"displayFieldName" : "City Name",
"attributes" :
{
///////这儿字段名每次返回都是不一样的,是不可预料的!
"City Name" : "Joe City",
"CLASS" : "city",
"ST" : "CA"
},
"geometryType" : "esriGeometryPoint",
"geometry" :
{
"x" : -118.375,
"y" : 34.086,
"spatialReference" : {"wkid" : 4326}
}
},
{
"layerId" : 59,
"layerName" : "Parcel",
"value" : "Parcel 649",
"displayFieldName" : "NAME",
"attributes" :
{
"NAME" : "Parcel 649",
"SUB_REGION" : "Pacific",
"STATE_ABBR" : "CA"
},
"geometryType" : "esriGeometryPolygon",
////////////////geometry对象可能返回的是point,polygon,polyline,已经将其定义为了三个不同的类!
"geometry" :
{
"spatialReference" : {"wkid" : 4326}, "rings" : [[[-118.35,32.81],[-118.42.806],[-118.511,32.892],[-118.35,32.81]]]}
}
]
}其中的attributes对象中的fieldname和fieldvalue每次返回都可能是不同的,想在C#中对这个对象进行正确的反序列化,需要怎样正确定义这个attributes类?
另外geometry对象,每次返回的类型也可能是不一样的,可能是point,polyline,polygon,应该怎么写才能正确定义这个方法呢?
这个问题困扰我好几天了```希望哪位高手指点一下!谢谢!
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货