Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 应为元素';根';从名称空间'';。遇到';无';名称为'';,名称空间'';_C#_Asp.net_Json - Fatal编程技术网

C# 应为元素';根';从名称空间'';。遇到';无';名称为'';,名称空间'';

C# 应为元素';根';从名称空间'';。遇到';无';名称为'';,名称空间'';,c#,asp.net,json,C#,Asp.net,Json,我正在尝试反序列化一个简单的json对象{“UserID”:1,“VenueID”:14} 我构建了一个类,该类应包含序列化的json字符串,如下所示: public class jsDeserial{ public T jsDeserialize<T>(string jsStr) { DataContractJsonSerializer serJs = new DataContractJsonSerializer(typeof(T));

我正在尝试反序列化一个简单的json对象
{“UserID”:1,“VenueID”:14}
我构建了一个类,该类应包含序列化的json字符串,如下所示:

public class jsDeserial{
    public T jsDeserialize<T>(string jsStr)
    {
        DataContractJsonSerializer serJs = new DataContractJsonSerializer(typeof(T));
        MemoryStream stream = new MemoryStream(Encoding.UTF8.GetByteCount(jsStr));
        T obj = (T)serJs.ReadObject(stream);
        stream.Close();
        return obj;
    }
}
为了启动反序列化,我键入了

    protected int VIdentifier
    {
        get
        {
            jsonStuff.jsDeserial js = new jsonStuff.jsDeserial();
            var vid=js.jsDeserialize<VenueUser>(uD);
            return vid.VenueID;
        }
    }
受保护的int-VIdentifier
{
得到
{
jsonStuff.jsDeserial js=新的jsonStuff.jsDeserial();
var vid=js.jsDeserialize(uD);
返回vid.VenueID;
}
}
uD表示序列化的json数据:{“VenueID”:14,“UserID”:1}

jsonStuff只是一个包含VIdentifier属性的命名空间

无论如何,我得到了以下错误,我无法理解:


应为命名空间“”中的元素“root”…遇到名为“”、命名空间为“”的“None”。

不是
Encoding.UTF8.GetByteCount()
只是获取字节数而不是数据?应该会有帮助。我实际上怀疑这是一个重复项是的,它设置了内存流的大小。我之前的评论是针对Barry O'Kane的问题。Barry O'Kane。我非常尴尬。你是对的。我使用了错误的方法。我需要的是GetBytes而不是GetByteCount()非常感谢您这么做。这不是
Encoding.UTF8.GetByteCount()吗
只是获取字节数而不是数据?应该会有帮助。我实际上怀疑这是一个重复项是的,它设置了内存流的大小。我之前的评论是针对Barry O'Kane的问题。Barry O'Kane。我非常尴尬。你是对的。我使用了错误的方法。我需要的是GetBytes而不是GetByteCount()非常感谢你。
    protected int VIdentifier
    {
        get
        {
            jsonStuff.jsDeserial js = new jsonStuff.jsDeserial();
            var vid=js.jsDeserialize<VenueUser>(uD);
            return vid.VenueID;
        }
    }