C# json字符串的反序列化返回空值 这是JSON字符串- “{\'body\':[\'VAL1\',\'VAL2\'],\'head\':{\'result\':true,\'time\':3.859}” 这些是我的课- 代码呢-

C# json字符串的反序列化返回空值 这是JSON字符串- “{\'body\':[\'VAL1\',\'VAL2\'],\'head\':{\'result\':true,\'time\':3.859}” 这些是我的课- 代码呢-,c#,asp.net,json,javascriptserializer,C#,Asp.net,Json,Javascriptserializer,它无法正确映射值,但我不确定原因。ResponseBody值输入正确 请帮忙 看起来您正在尝试读取ResponseObj(这是JSON中的顶级对象),但代码是为ResponseHead编写的。应采取以下措施: var wholeObject = serializer.Deserialize<ResponseObj>(responseText); rhead = wholeObject.head; var wholeObject=serializer.Deserialize(resp

它无法正确映射值,但我不确定原因。ResponseBody值输入正确


请帮忙

看起来您正在尝试读取
ResponseObj
(这是JSON中的顶级对象),但代码是为
ResponseHead
编写的。应采取以下措施:

var wholeObject = serializer.Deserialize<ResponseObj>(responseText);
rhead = wholeObject.head;
var wholeObject=serializer.Deserialize(responseText);
rhead=wholeObject.head;

看起来您正在尝试读取
ResponseObj
(这是JSON中的顶级对象),但代码是针对
ResponseHead
编写的。应采取以下措施:

var wholeObject = serializer.Deserialize<ResponseObj>(responseText);
rhead = wholeObject.head;
var wholeObject=serializer.Deserialize(responseText);
rhead=wholeObject.head;

如果将值放入json中的字符串中,您将看到[Serializable]对您的previus问题有效吗?不,我已经添加了在那里有效的答案。这只是一种类型的改变。不过,感谢您的回答,这可能使我避免了将来的错误。如果您将值放在json的字符串中,您将看到[Serializable]对您的previus问题起作用了吗?不,我已经添加了在那里有效的答案。这只是一种类型的改变。不过,感谢您的回答,它可能使我避免了将来的错误。这给了我一个错误,即不支持反序列化数组,因为ResponseBody是数组。因此,我尝试分别获取这些值。如果我从ResponseObj中删除ResponseBody,只保留ResponseHead,然后从整体上获取对象的值,那么它确实有效。但是,单独获取ResponseHead的值不起作用。只需将ResponseBody更改为sting数组即可。如果你不能改变JSON对象。如果你不能在序列化器(DATACONTROCTJSONSerialAlgisher和JavaCurrPixSerialSturver)中构建你的JSON考虑,它会提供更多的选项。@ TimBJAM:我考虑使用JSON.NET,这给了我一个更具描述性的错误,使我意识到这个问题是不包串[]。进入ResponseBody对象。我去掉了那个对象,直接让我的ResponseObject有一个字符串[]作为主体。刚刚回到SO并阅读Tims的回复,要求我这样做!在这之后,使用JavaScriptSerializer也起到了作用,这给了我一个错误,即不支持数组的反序列化,因为ResponseBody是数组。因此,我尝试分别获取这些值。如果我从ResponseObj中删除ResponseBody,只保留ResponseHead,然后从整体上获取对象的值,那么它确实有效。但是,单独获取ResponseHead的值不起作用。只需将ResponseBody更改为sting数组即可。如果你不能改变JSON对象。如果你不能在序列化器(DATACONTROCTJSONSerialAlgisher和JavaCurrPixSerialSturver)中构建你的JSON考虑,它会提供更多的选项。@ TimBJAM:我考虑使用JSON.NET,这给了我一个更具描述性的错误,使我意识到这个问题是不包串[]。进入ResponseBody对象。我去掉了那个对象,直接让我的ResponseObject有一个字符串[]作为主体。刚刚回到SO并阅读Tims的回复,要求我这样做!在此之后,使用JavaScriptSerializer也起到了作用。
result: false 
time: 0.0 
var wholeObject = serializer.Deserialize<ResponseObj>(responseText);
rhead = wholeObject.head;