【发布时间】:2013-10-23 19:04:02
【问题描述】:
我正在使用JSon.net 库来反序列化一些对象,它工作正常:
Public Class Person
Public Property PersonId As Long
Public Property Name As String
Public Property SSN As Integer
End Class
Dim json = {'Name':'John', 'SSN':'ABC'}
JsonConvert.DeserializeObject(json, GetType(Person))
但是,在我的情况下,json 可能包含无效数据(如上面的 SSN),在这种情况下,我得到的所有错误都是“输入字符串的格式不正确”。有没有办法找出究竟是哪个字段引发了错误?
【问题讨论】:
-
您使用的是什么版本的 Json.Net?当我使用 v5.0.8(最新)尝试它时,我得到
Could not convert string to integer: ABC. Path 'SSN', line 1, position 27.这似乎对我来说非常具体。您的 JSON 字符串格式是否正确? -
顺便说一下,
Dim json = {'Name':'John', 'SSN':'ABC'}不能在 VB 中编译。我假设您的意思是Dim json As String = "{'Name':'John', 'SSN':'ABC'}"。此外,从技术上讲,单引号应该是双引号才能成为正确的 JSON。见json.org。 -
@BrianRogers 你对双引号是对的,在我将格式更改为双引号 JSON 后,它开始报告详细错误。
-
@BrianRogers 为什么不发表您的评论作为答案,以便我接受?
-
很高兴听到更改引号解决了您的问题。我将其发布为您的答案。
标签: json json.net deserialization json-deserialization