读取和解析JSON数据
本文关键字:数据 JSON 和解 读取 | 更新日期: 2023-09-27 18:14:03
我是c#新手,我试图从WSDL服务解析JSON数据。
代码如下:
string cityjson = service.getcity();
/*
sample cityjson return
[{"City":"Alaminos","Province":"Pangasinan"},{"City":"Angeles","Province":"Pampanga"},{"City":"Antipolo","Province":"Rizal"}]
*/
using (var ms = new MemoryStream(Encoding.Unicode.GetBytes(cityjson)))
{
var serializer = new DataContractJsonSerializer(typeof(Location));
Location locs = (Location)serializer.ReadObject(ms);
Console.WriteLine(locs.Locations); // blank in console output.
}
这是我的数据合约代码
[DataContract]
public class Location
{
[DataMember]
public String[] Locations;
}
当我执行console.WriteLine(cityjson);
时,它打印整个json
你的c#类是错误的。它应该有两个性质City
和Province
,而json
对象是 Location
s的List
。并尝试使用JSON.Net
来解析json
数据。它重量轻,使用方便。也可以使用可用的资源将json
转换为c#类型。
public class Location
{
public String City { get; set; }
public String Province { get; set; }
}
var t = "[{'City':'Alaminos','Province':'Pangasinan'},{'City':'Angeles','Province':'Pampanga'},{'City':'Antipolo','Province':'Rizal'}]";
var type = JsonConvert.DeserializeObject<List<Location>>(t);
使用System.Web.Script.Serialization;
像这样重写你的代码
JavaScriptSerializer js = new JavaScriptSerializer();
Location locs = js.Deserialize<Location>(ms);