无法从JSON字符串构造Object

sam*_*kar 7 c# json

我从我的C#客户端传递一个简单的JSON字符串到我的webservice.以下是我发送的字符串

"{\"name \":\"S1 \"}"

在服务端,我使用以下代码

class DataDC
{

    public String attr { get; set; }
    public String attrVal { get; set; }

}

JavaScriptSerializer json_serializer = new JavaScriptSerializer();
DataDC dc = (DataDC)json_serializer.DeserializeObject(str);
Run Code Online (Sandbox Code Playgroud)

我收到以下错误

"无法将'System.Collections.Generic.Dictionary`2 [System.String,System.Object]'类型的对象强制转换为'DataDC'."

Ada*_*ski 25

不应该像这样反序列化到你的班级:

JavaScriptSerializer json_serializer = new JavaScriptSerializer();
DataDC dc = json_serializer.Deserialize<DataDC>(str);
Run Code Online (Sandbox Code Playgroud)

另一件事是你的模型类中没有Name参数,因此不会传递给它.你的JSON应该是这样的:"{\"attr \":\"some value \",\"attrVal \":\"some value \"}"

或者更改您的模型类:

class DataDC {
    public String name{ get; set; }    
}
Run Code Online (Sandbox Code Playgroud)