我试图在C#中序列化一个简单的对象,发送它,然后在另一端反序列化它。前两部分似乎运作良好,但当我尝试这样做时:
ReturnItem jsonval = JsonConvert.DeserializeObject<ReturnItem>(result);我得到:
07-08 11:41:15.519 I/MonoDroid( 2856):Newtonsoft.Json.JsonSerializationException:错误转换值{“Val1”:-1.0,"Val2":-1.0,"Val3":-1.0,"Val4":-1.0}“输入‘AndroidDemo.ReturItem’。路径'',第1行,位置104。-> System.ArgumentException:无法从System.String转换为AndroidDemo.ReturnItem。
作为参考,ReturnItem看起来如下:
public class ReturnItem
{
public double Val1{ get; set; }
public double Val2{ get; set; }
public double Val3{ get; set; }
public double Val4{ get; set; }
}结果是一个如下所示的字符串:
“{\”Val1“:-1.0,\"Val2\":-1.0,\"Val3\":-1.0,\”Val4“:-1.0}”
编辑:这是我最初是如何序列化ReturnItem的。
ReturnItem value = new ReturnItem();
value.Val1= -1;
value.Val2= -1;
value.Val3= -1;
value.Val4= -1;
return JsonConvert.SerializeObject(value);发布于 2015-07-08 16:02:01
在您试图反序列化的字符串中是否存在围绕JSON对象的双引号?
如果是这样的话,那么它会认为整个事情是一个字符串的JSON表示,而不是一个'ReturnItem‘。
发布于 2015-07-08 16:19:49
确保AndroidDemo.ReturnItem类与上面示例中的ReturnItem类相同。
https://stackoverflow.com/questions/31297619
复制相似问题