反序列化双类型变量

时间:2017-05-02 03:29:29

标签: c# asp.net json asp.net-mvc deserialization

当我尝试从JSON字符串反序列化为对象时出现异常。

Newtonsoft.Json.JsonReaderException
Input string '106.890907 is not a valid integer. Path 'data[0].loc.coordinates[0]', line 1, position 9413.

这就是我反序列化对象的方法:

var propertiesObj =
          JsonConvert.DeserializeObject<Location>(
              jsonObject);

而且,这就是我的json看起来的样子

{
    "coordinates":
    [
        106.890907,
        -6.149393
    ],
    "type": "Point"
}

最后,这是我宣布我的模型类的方式:

Location.cs

public class Location
{
    public List<double> coordinates { get; set; }
    public string type { get; set; }
}

我在StackOverFlow上引用了这个问题,但它没有解决我的问题,link

请帮忙。我一直无法找到任何解决方案。感谢。

3 个答案:

答案 0 :(得分:0)

试试这个,更新JSON:

发件人

"loc": {
"coordinates": [
  106.890907,
  -6.149393
],
"type": "Point"
}

{
"coordinates": [
  106.890907,
  -6.149393
],
"type": "Point"
}

即从Json中删除“loc”

答案 1 :(得分:0)

重新安装Windows 10后,这个错误就神秘地消失了。

答案 2 :(得分:-1)

这是本地化问题。您可以为JsonConvert设置CultureInfo。 我认为你的系统接受双重昏迷(,)而不是点(。)