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

时间:2013-03-28 23:36:14

标签: c# json serialization

我想保存此对象:

Student s = new Student();

到Json文件。但Visual Studio 2012找不到这些名称空间:

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

有什么想法吗?

5 个答案:

答案 0 :(得分:8)

如果你想将类序列化为Json,你也可以试试这个:

如果还没有安装JSON.NET。

确保包含using Newtonsoft.Json;

你可以试试这段代码:

Student s = new Student();
string json = JsonConvert.SerializeObject(s);
抱歉我的英语不好。

答案 1 :(得分:4)

第1步:Google“System.Runtime.Serialization.Json命名空间”并找到此页面:

System.Runtime.Serialization.Json Namespace

第2步:点击您感兴趣的课程(让我们说JsonReaderWriterFactory Class

步骤3:阅读说明该课程所在集会的部分:

  

汇编:System.Runtime.Serialization(in   System.Runtime.Serialization.dll)

步骤4:添加该DLL作为项目的参考。请参阅:How to: Add or Remove References By Using the Add Reference Dialog Box

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

答案 2 :(得分:2)

确保为项目添加适当的引用。例如,要使用datacontractjsonserializer类,您需要向项目添加对System.Runtime.Serialization的引用。

如果您使用的是visual studio,请阅读How to: Add or Remove References in Visual Studio

然后您可以将其用于:

DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(Student));
ser.WriteObject(outputStream, student);

当然还有很多其他方法可以做到这一点,我不会详细介绍每一个(我确定你已经找到了一些例子,因为你列出了这些名称空间)。

提示:如果您想使用.NET类,并且您不确定需要将哪些引用添加到项目中才能使用它,请打开该类的MSDN页面并查找如下文字:

  

汇编: System.Runtime.Serialization(在System.Runtime.Serialization.dll中)

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

答案 3 :(得分:2)

其他答案是正确的,说您需要添加对相应程序集的引用。作为管理个人项目的引用的简单方法,我建议NuGet,Visual Studio的包管理器。值得庆幸的是,NuGet附带Visual Studio 2012,因此您只需右键单击该项目,单击“管理NuGet包”,然后搜索Json.NET。我在Visual Studio 2012中使用NuGet发现的第一篇博文是here,它似乎提供了一套很好的说明,并附有截图。

答案 4 :(得分:0)

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

  • System.Runtime.Serialization.Json位于System.Runtime.Serialization
  • System.Web.Script位于System.Web.Extensions
  • System.Json仅适用于Silverlight