提问者:小点点

Json.NET问题


我正在尝试在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.返回项'。路径",第1行,位置104。---

作为参考,返回项如下所示:

public class ReturnItem
{
    public double Val1{ get; set; }
    public double Val2{ get; set; }
    public double Val3{ get; set; }
    public double Val4{ get; set; }
}

结果是一个字符串,如下所示:

"{\"Val 1\":-1.0,\"Val 2\":-1.0,\"Val 3\":-1.0,\"Val 4\":-1.0}"

编辑:这是我最初序列化返回项的方式。

ReturnItem value = new ReturnItem();
value.Val1= -1;
value.Val2= -1;
value.Val3= -1;
value.Val4= -1;
return JsonConvert.SerializeObject(value);

共2个答案

匿名用户

JSON对象周围的双引号是否存在于要反序列化的字符串中?

如果是这样,那么它会认为整个事情是字符串的JSON表示,而不是“返回项”。

匿名用户

确保AndroidDemo.返回项类与上面示例中的返回项类相同。