在C#中反序列化JSON(从PHP页面接收)

时间:2013-03-30 20:35:34

标签: c# json

我想反序列化从网页收到的json字符串

我正在使用此代码来获取json字符串

WebClient client = new WebClient();
string downloadString = client.DownloadString("http://www.downmasters.com/api.php");

但我不确定如何将字符串转换为数组或C#中的等效字符,以便我可以使用它。

有什么想法吗?

3 个答案:

答案 0 :(得分:1)

使用DataContractJsonSerializer类。

  

将对象序列化为JavaScript Object Notation(JSON)并将JSON数据反序列化为对象。这个类不能被继承。

您需要使用不同的DataContract attributes创建一些要对其进行序列化和反序列化并对其进行注释的对象。

答案 1 :(得分:1)

您可以使用JSON.net执行此操作,此处是使用WebClient的示例,就像您当前一样。

using Newtonsoft.Json;
using Newtonsoft.Json.Linq;

WebClient client = new WebClient();
string downloadString = client.DownloadString("http://www.downmasters.com/api.php");
var data = JsonConvert.DeserializeObject(downloadString );

我最近刚刚使用ASP.NET MVC 4.0完成了一个Web应用程序,并且在使用WebClient时遇到了一些限制,而我选择了HttpWebRequest,这为我提供了更多选项来微调我的请求。也就是说,如果你所做的只是使用DownloadString方法,那么WebClient是一个很好的选择。

答案 2 :(得分:0)

为什么不简单地尝试.Split(char [],stringsplitter.none)

你可以使用字符将数组拆分成你需要的类型,这就是我一直这样做的。