Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/322.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
将JSON对象解析为c#_C#_Json_.net 3.5 - Fatal编程技术网

将JSON对象解析为c#

将JSON对象解析为c#,c#,json,.net-3.5,C#,Json,.net 3.5,我试图在这个链接中使用这个例子 但是我的项目不会使用JavaScriptConvert.DeserializeObject编译,这个例子说这是从.net库编译的,有人知道是哪一个吗 我知道下面的示例使用了Newtonsoft.Json….在.NET中,Javascript序列化程序是System.Web.Script.Serialization命名空间的一部分 下面是我用于反序列化字符串的扩展方法示例: public static T FromJSON<T>(this string

我试图在这个链接中使用这个例子

但是我的项目不会使用JavaScriptConvert.DeserializeObject编译,这个例子说这是从.net库编译的,有人知道是哪一个吗


我知道下面的示例使用了Newtonsoft.Json….

在.NET中,Javascript序列化程序是
System.Web.Script.Serialization
命名空间的一部分

下面是我用于反序列化字符串的扩展方法示例:

public static T FromJSON<T>(this string json)
 {
            JavaScriptSerializer jss = new JavaScriptSerializer();

            return jss.Deserialize<T>(json);
 }

您可能还想看看,这是一个免费的开源项目,它比内置的.NET JSON序列化程序快得多,如果您仍然需要支持的话,它也可以在.NET 1.x和2.0上使用


这确实是一个非常棒的软件!强烈推荐。

了解反序列化的简单方法

JavaScriptSerializer js=新的JavaScriptSerializer();
Person p2=js.反序列化(str);

您发布的链接来自我的博客,使用它有什么问题?请随时回复博客帖子或发邮件给我ricmrodrigues@gmail.com. 我用了一段时间,效果很好


关于所讨论的嵌入在.Net Framework上的JavascriptSerializer,问题是该序列化程序没有序列化到列表中/从列表中序列化。如果您想这样做,您需要使用Newtonsoft.JSON,因为.NET Framework根本不支持它。由于它的主要用途是将JSON返回到某个客户端脚本,以便进行搜索或其他任何操作,因此必须使用列表。但是,使用这段代码,您无法对列表进行反序列化/序列化,这在处理结果集时非常方便,并且比.NET内置的.JavascriptSerializer性能更好,因此,Newtonsoft.Json是最好的选择:

对于自定义类型的单个对象:

classtype myDeserializedObj = (classtype)JavaScriptConvert.DeserializeObject(jsonString, typeof(classtype));       
List<classtype> myDeserializedObjList = (List<classtype>)Newtonsoft.Json.JsonConvert.DeserializeObject(jsonString, typeof(List<classtype>));
有关自定义类型的对象列表,请执行以下操作:

classtype myDeserializedObj = (classtype)JavaScriptConvert.DeserializeObject(jsonString, typeof(classtype));       
List<classtype> myDeserializedObjList = (List<classtype>)Newtonsoft.Json.JsonConvert.DeserializeObject(jsonString, typeof(List<classtype>));
List myDeserializedObjList=(List)Newtonsoft.Json.JsonConvert.DeserializeObject(jsonString,typeof(List));

问题在于Newtonsoft.Json无法处理字符串中嵌入的正则表达式。它认为\(是一个错误的转义序列。这就提出了一个问题:查看带引号的字符串的内部是Newtonsoft的什么业务?“…”应该告诉转换器内容是原样的。

错误1命名空间“System.Web”中不存在类型或命名空间名称“Script”(是否缺少程序集引用?)但是我有System.Web DllTanks很多我该如何使用你的方法?名称空间在
System.Web.Extensions.dll
中。快速的MSDN搜索可以找到它。@van-这是字符串的扩展方法,所以一旦你包含了包含此方法的类(带有using语句),你就可以在任何字符串上调用它。例如“{\”something\“:{\“somethingElse\”}}”;