C# 无法从JSON字符串构造对象
我正在将一个简单的JSON字符串从我的C#客户端传递到我的Web服务。下面是我发送的字符串 “{\'name\':\'S1\'}” 在服务端,我使用以下代码C# 无法从JSON字符串构造对象,c#,json,C#,Json,我正在将一个简单的JSON字符串从我的C#客户端传递到我的Web服务。下面是我发送的字符串 “{\'name\':\'S1\'}” 在服务端,我使用以下代码 class DataDC { public String attr { get; set; } public String attrVal { get; set; } } JavaScriptSerializer json_serializer = new JavaScriptSerializer(); DataDC
class DataDC
{
public String attr { get; set; }
public String attrVal { get; set; }
}
JavaScriptSerializer json_serializer = new JavaScriptSerializer();
DataDC dc = (DataDC)json_serializer.DeserializeObject(str);
我得到以下错误
“无法强制转换类型为的对象
'System.Collections.Generic.Dictionary'2[System.String,System.Object]'
键入“DataDC”
你不能反序列化它的原因是因为它看起来一点都不像你的类。您应该创建一个如下所示的类:
public class DataDC
{
public string name{get; set;}
}
您的Json字符串/对象与
DataDC
为了使其工作,您至少需要在类中有一个名为name的属性。e、 g
public class DataDC
{
public string name { get; set; }
public string attr { get; set; }
public string attrVal { get; set; }
}
这样,您可能会得到一个匹配的属性
使用现有类时,需要以下Json字符串:
"{ \"attr\":\"S1\", \"attrVal\":\"V1\" }"
注意:您还可以使用以下代码进行反序列化
DataDC dc = json_serializer.Deserialize<DataDC>(str);
DataDC=json\u序列化程序。反序列化(str);
反序列化到您的类不应该是这样的吗:
JavaScriptSerializer json_serializer = new JavaScriptSerializer();
DataDC dc = json_serializer.Deserialize<DataDC>(str);
你应该像在json中那样命名你的类属性你的json反序列化程序应该如何知道DataDC对象以及如何映射它?@sameer你能提到这两个建议中的哪一个对你有帮助(或者两者都有帮助)?
class DataDC {
public String name{ get; set; }
}