我想使用API从interwebz获取信息。 API以Json格式返回数据。
显示的代码不多,因为如果没有合适的using语句我就无法真正开始......
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
using System.Net;
using System.Runtime.Serialization.Json;
我收到此错误:
名称空间中不存在类型或命名空间名称“Json” 'System.Runtime.Serialization'(你错过了一个程序集吗? 引用?)
我错过了DLL文件或什么的?基于我徒劳无功地搜索解决方案的时间,我明白.NET 4.xx应该已经拥有解析Json格式化字符串所需的工具了吗?
答案 0 :(得分:53)
System.Runtime.Serialization.Json命名空间位于两个不同的DLL中,具体取决于您的.net框架。
在.NET 3.5中它位于System.ServiceModel.Web.dll
中在.NET 4.0及更高版本中它位于System.Runtime.Serialization.dll中。
确保在项目中添加了正确的DLL作为参考,并将using System.Runtime.Serialization.Json;
添加到代码文件的顶部。
编辑 - 考虑使用JSON.NET
即使.NET Framework提供了自己的JSON序列化和反序列化命名空间(DataContractJsonSerializer和JavaScriptSerializer),您也应该调查是否最好使用JSON.NET。
JSON.NET更易于使用,性能更佳,功能更多。 http://www.newtonsoft.com/json/help/html/JsonNetVsDotNetSerializers.htm
答案 1 :(得分:11)
您需要从参考
导入System.Runtime.Serialization dll答案 2 :(得分:8)
您需要添加对项目的引用。
在解决方案资源管理器中右键单击引用,然后添加引用。您将看到DLL的列表,您必须选中将其添加到项目所需的框旁边的框。完成此操作后,您可以成功添加using语句。
希望有所帮助!
答案 3 :(得分:4)
从C#序列化和反序列化JSON的一般过程是:
添加对System.Runtime.Serialization库的引用。
为System.Runtime.Serialization和System.Runtime.Serialization.Json添加using指令。
答案 4 :(得分:1)
请将Target framework
从.NET Framework 4 Client Profile
更改为.NET Framework 4