【发布时间】:2016-07-17 02:39:37
【问题描述】:
我在反序列化 REST Web 服务提供的 JSON 时遇到问题。 这是我解决问题的建议
class Program
{
static void Main(string[] args)
{
RestResponse r = readFromWeb("http://www.808.dk/?code-csharp-httpwebrequest");
Console.ReadKey();
}
static RestResponse readFromWeb(string url)
{
HttpWebRequest request = HttpWebRequest.Create("http://services.groupkt.com/country/get/all") as HttpWebRequest;
request.ContentType = "application/json";
request.Method = "GET";
HttpWebResponse response = request.GetResponse() as HttpWebResponse;
Stream webStream = response.GetResponseStream();
DataContractJsonSerializer json = new DataContractJsonSerializer(typeof(RestResponse));
RestResponse resttresponse = (RestResponse)json.ReadObject(webStream);
return resttresponse;
}
}
还有 DataContract 类
[DataContract]
public class RestResponse
{
[DataMember]
public List<string> messages { get; set; }
[DataMember]
public List<City> result { get; set; }
}
[DataContract]
public class City
{
[DataMember]
public string name { get; set; }
[DataMember]
public string alpha2_code { get; set; }
[DataMember]
public string alpha3_code { get; set; }
}
有什么建议吗? 诚挚的。
【问题讨论】:
-
您是否仅限于使用 DataContractJsonSerializer ?在使用 JSON 时,使用 Newtonsoft.Json 更容易和更健壮
-
不,但我正在准备 70-483 考试,所以我必须使用 DataContractJsonSerializer。感谢您的贡献,我会尝试使用 Newtonsoft.json 框架
标签: c# asp.net .net wcf datacontract