Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/263.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.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# 如何在没有JSON.NET库的情况下将对象转换为JSON?_C#_Json_Serialization - Fatal编程技术网

C# 如何在没有JSON.NET库的情况下将对象转换为JSON?

C# 如何在没有JSON.NET库的情况下将对象转换为JSON?,c#,json,serialization,C#,Json,Serialization,我要保存此对象: Student s = new Student(); 到Json文件。但是Visual Studio 2012找不到以下名称空间: System.Web.Script; System.Json; System.Runtime.Serialization.Json; 有什么想法吗?确保为项目添加了适当的参考。例如,要使用该类,需要向项目中添加对System.Runtime.Serialization的引用 如果您使用的是visual studio,请阅读 然后,您可以将其用于

我要保存此对象:

Student s = new Student();
到Json文件。但是Visual Studio 2012找不到以下名称空间:

System.Web.Script;
System.Json;
System.Runtime.Serialization.Json;

有什么想法吗?

确保为项目添加了适当的参考。例如,要使用该类,需要向项目中添加对
System.Runtime.Serialization
的引用

如果您使用的是visual studio,请阅读

然后,您可以将其用于:

DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(Student));
ser.WriteObject(outputStream, student);
当然,还有很多其他方法可以做到这一点,我不会详细介绍每一种方法(我相信您已经找到了一些示例,因为您列出了这些名称空间)

提示:如果要使用.NET类,但不确定需要向项目中添加什么引用才能使用该类,请打开该类的MSDN页面并查找如下文本:

程序集:System.Runtime.Serialization(在System.Runtime.Serialization.dll中)


这是您需要添加到项目中的程序集引用。

您可能需要添加到项目中的引用:

  • System.Runtime.Serialization.Json位于System.Runtime.Serialization中
  • System.Web.Script位于System.Web.Extensions中
  • Json仅适用于Silverlight
步骤1:Google“System.Runtime.Serialization.Json名称空间”,并找到以下页面:

第二步:点击你感兴趣的课程(比如说)

步骤3:阅读说明该类所属部件的零件:

程序集:System.Runtime.Serialization(在 System.Runtime.Serialization.dll)

步骤4:将该DLL添加为对项目的引用。见:


步骤5:根据需要重复步骤1-4。

其他答案正确地表示您需要添加对适当程序集的引用。作为管理个人项目引用的一种简单方法,我推荐使用VisualStudio的包管理器。谢天谢地,NuGet随Visual Studio 2012发布,因此您只需右键单击项目,单击“管理NuGet软件包”,然后搜索Json.NET。我在Visual Studio 2012中发现的关于使用NuGet的第一篇博文是,它似乎给出了一组很好的说明,并附有屏幕截图。

如果您想将类序列化为Json,也可以尝试以下内容:

如果尚未安装JSON.NET,请安装

确保使用Newtonsoft.Json包含

您可以尝试以下代码:

Student s = new Student();
string json = JsonConvert.SerializeObject(s);

对不起,我的英语不好。

你能给我更多关于如何添加参考资料的信息吗?@gkiko你在使用visual studio吗?visual studio 2012桌面开发人员的沉默。。。我真的希望OP在打开自动驾驶仪并让一些工具为他做这件事之前能得到一个关于这一切的线索;我经常把它看成是另一套参考资料的乱七八糟,在我的工作环境中也可以不用它,甚至很高兴——尽管我一直在尝试喝kool-aid,并尝试在个人机器上使用它,但也许一分钱会掉下来,我会“得到它”。我对NuGet有很大的担心。和我呆一会儿。。。看,我是部署专家。(是的,想笑就笑,我以前在这里听到过尖刻的“部署专家?bwahaha”评论。)开发人员经常来找我,却不知道他们的依赖关系是什么。理解依赖关系是提出需求的第一步。NuGet自动设置开发环境和构建环境,但对部署不做任何操作。我的另一个担忧是这有点像一场CM噩梦。否则我知道他们想干什么。@ChristopherPainter也许。我宁愿让他/她使用一段时间的包管理器,并在查找特定版本的库或使用包管理器无法提供的库时了解程序集引用,而不是看到一个新程序员说“这个C#东西很难,我会用PHP编写所有东西”,或者当把一个项目分成单独的程序集,或者在编写任何C++代码时,或者在大学课程中编写Linux代码时,否则我知道他们在做什么。对于那些习惯了其他开源栈工作方式的新手来说,他们试图表现得既酷又性感。是的,我发现你只能通过安装另一个包,然后删除它来安装System.Json。(不记得是哪个软件包了。)我的印象是System.Json并没有得到真正的支持。这个答案完全不是OP想要的,而是创建了点击诱饵欺骗搜索结果。