【发布时间】:2016-02-21 06:47:42
【问题描述】:
我在从服务器接收 JSON 数组时遇到一个奇怪的问题,我试图反序列化它,但它说
我创建了一个类并试图将其反序列化为该对象,但是它说
类如下。
class bundle
{
public string msgid { get; set; }
public string messagetype { get; set; }
public string message { get; set; }
public string from { get; set; }
}
异常:Newtonsoft.Json.JsonReaderException:完成读取 JSON 内容后遇到的附加文本:y。路径'',第 1 行, 位置 93. 在 Newtonsoft.Json.JsonTextReader.Read() 在 Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader 阅读器,类型 objectType,布尔值 checkAdditionalContent)在 Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader 阅读器, 类型 objectType) 在 Newtonsoft.Json.JsonSerializer.Deserialize(JsonReader 阅读器,类型 objectType) 在 Newtonsoft.Json.JsonConvert.DeserializeObject(String 值,类型类型,JsonSerializerSettings 设置)在 Newtonsoft.Json.JsonConvert.DeserializeObject(字符串值)在 Listener.Program.LogStatus(布尔接收,字节[]缓冲区,Int32 length) in at Listener.Program.d__5.MoveNext() in --- End 来自先前抛出异常的位置的堆栈跟踪 ---
在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务 任务)在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务 任务)在 System.Runtime.CompilerServices.TaskAwaiter.GetResult()
在 Listener.Program.d__1.MoveNext()
我得到的数组在下面,
{"messagetype":"chatmsg","msgid":"123_119","from":"sam","message":"Hi there, good morning ! "}
{"messagetype":"chatmsg","msgid":"123_120","from":"sam","message":"how are you?"}
{"messagetype":"chatmsg","msgid":"6478316959_121","from":"sam","message":"this is msg"} ood morning !"}
{"messagetype":"ping"}g","msgid":"6478316959_121","from":"sam","message":"you are crazy"} orning ! "}
最后是意外的令牌。
【问题讨论】:
-
那个 JSON 是无效的,它有多个根元素。尝试将其粘贴到jsonformatter.curiousconcept.com 中,您将看到问题所在。要读取 JSON 根元素序列,请参阅stackoverflow.com/questions/26601594/…
-
我知道它最后有意外的令牌,但是当我尝试反序列化它时,它不起作用:(
-
实际上,现在我查看了您的 JSON,我意识到它不仅仅是根对象的流还有更多的问题。对于这一行:
{"messagetype":"chatmsg","msgid":"6478316959_121","from":"sam","message":"this is msg"} ood morning !"},似乎有人试图覆盖文件中的一行,但未能完全覆盖它。你确定你的 JSON 真的那么糟糕吗? -
是的,我正试图弄清楚如何将其反序列化为类对象,但它不断向我抛出相同的异常
标签: c# arrays json c#-4.0 json.net