C# 如何将json字符串反序列化到域对象?
我正在尝试将以下json转换为域对象 JSON:C# 如何将json字符串反序列化到域对象?,c#,json,windows-phone-7,C#,Json,Windows Phone 7,我正在尝试将以下json转换为域对象 JSON: [{"name":"McDonalds","deals":[{"desc":"Onion Rings free with Double Cheese burgers"}],"geometry":{"lat":13.073412,"lng":80.221393}},{"name":"JusSportz","deals":[{"desc":"20% off on Wilson Rackets"}],"geometry":{"lat":13.07323
[{"name":"McDonalds","deals":[{"desc":"Onion Rings free with Double Cheese burgers"}],"geometry":{"lat":13.073412,"lng":80.221393}},{"name":"JusSportz","deals":[{"desc":"20% off on Wilson Rackets"}],"geometry":{"lat":13.073231,"lng":80.221181}}]
[DataContract]
public class Deal
{
[DataMember(Name="name")]
public string Store { get; set; }
[DataMember(Name="deals")]
public Offer[] Offers {get; set;}
[DataMember(Name="geometry")]
public GeoCoordinate Location { get; set; }
}
[DataContract]
public class Offer
{
[DataMember]
public string deal;
}
型号:
[{"name":"McDonalds","deals":[{"desc":"Onion Rings free with Double Cheese burgers"}],"geometry":{"lat":13.073412,"lng":80.221393}},{"name":"JusSportz","deals":[{"desc":"20% off on Wilson Rackets"}],"geometry":{"lat":13.073231,"lng":80.221181}}]
[DataContract]
public class Deal
{
[DataMember(Name="name")]
public string Store { get; set; }
[DataMember(Name="deals")]
public Offer[] Offers {get; set;}
[DataMember(Name="geometry")]
public GeoCoordinate Location { get; set; }
}
[DataContract]
public class Offer
{
[DataMember]
public string deal;
}
我尝试了System.Runtime.Serialization.Json命名空间中的DataContractJsonSerializer,但显然无法将字符串转换为对象。有没有其他的图书馆可以让我完成这项工作?或者有没有一种方法可以使用这个库(通过将Json字符串转换成某种中间格式)来完成这项工作 尝试更改位模型:
[DataContract]
public class Deal
{
[DataMember(Name="name")]
public string Store { get; set; }
[DataMember(Name="deals")]
public Offer[] Offers {get; set;}
[DataMember(Name="geometry")]
public GeoCoordinate Location { get; set; }
}
[DataContract]
public class Offer
{
[DataMember(Name="desc")]
public string deal { get; set; }
}
下面是我如何将JSON反序列化回我的域对象
using (var reader = new MemoryStream(Encoding.Unicode.GetBytes("YourStringValue")))
{
var ser = new DataContractJsonSerializer(typeof(Deal));
return (Deal)ser.ReadObject(reader);
}
这就是你想要的吗?我想是的,我还认为我可能正在转换一系列交易,同时(错误地)将其转换为交易。我得到一个无效的强制转换异常。我将尝试并接受它,如果它工作的话,请确保您正在反序列化的所有类都具有数据协定属性。如果没有,您可能会遇到额外的序列化问题。我认为这不是模型的问题。我认为这表明我正在转换/解析JSON。