.net 4.5-在c#中的Web API 2控制器中反序列化geoJSON
本文关键字:控制器 反序列化 geoJSON API Web 中的 net | 更新日期: 2023-09-27 18:00:23
我需要传递一些JSON,包括一个geoJSON对象,并将其取消序列化为这个模型:
public class GeoTag
{
public Guid ID { get; set; }
public DbGeography Geography { get; set; }
public string Tag { get; set; }
public Guid UserID { get; set; }
}
我在.NET 4.5中使用Web API 2控制器,如下所示:
[ResponseType(typeof(GeoTag))]
public async Task<IHttpActionResult> PostQuestion(GeoTag geoTag)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
//Do some stuff
return CreatedAtRoute("DefaultApi", new { id = geoTag.ID }, geoTag);
}
这是我的JSON:
{
"Tag": "food",
"Geography": {
"coordinates": ["-0.1337","51.50998"],
"type": "Point"
}
}
我在获取控制器方法来解释Geography
时遇到问题;它返回的信息是:
Unable to find a constructor to use for type System.Data.Spatial.DbGeography. A class should either have a default constructor, one constructor with arguments or a constructor marked with the JsonConstructor attribute. Path 'Geography.coordinates', line 4, position 19.
有人知道我所做的是否可能,或者我的方法是否错误吗?
像这样改变你的Json,
{
"Tag": "food",
"Geography": {
"coordinates": ["-0.1337","51.50998"],
"type": "Point"
}
}
它会起作用..:)