我正在尝试将 JSON 字符串反序列化为对象。我在 Xamarin 中使用 System.JSON 库,这就是我目前所拥有的:
ServerConnection.Receive (bb);
data = Encoding.ASCII.GetString (bb);
try{
MemoryStream stream = new MemoryStream(bb);
JsonValue jsonCounters = JsonObject.Load(stream);
}
catch(Exception error){
Console.WriteLine ("ERROR: " + error.Message);
}
我遇到的问题是 jsonCounters 始终为空。我知道 JSON.NET 是一个更好的库,但使用它需要升级我的帐户,而这是我还没有真正准备好做的事情。
编辑:
我点击了 JamesMontemagno 提供的链接。然后我将以下内容写入我的应用程序:
ServerConnection.Receive (bb);
data = Encoding.ASCII.GetString (bb);
try{
JsonValue value = JsonValue.Parse(data);
JsonObject jsonCounters = value as JsonObject;
}
catch(Exception error){
Console.WriteLine ("ERROR: " + error.Message);
}
唯一的问题是,当我创建收到的字节数组时,我会:
byte[] bb = new byte[1024]
然后问题是当我收到并尝试解析 JSON 时,似乎 JSON 长度和字节数组长度之间的差异没有丢失,它只是在 JSON 末尾转换为空白,这导致JsonValue.Parse 因错误而失败:JSON 输入中的额外字符。在第 1 行,第 642 列。我尝试了 data = data.Trim(),但这并没有做很多事情。