【发布时间】:2014-03-14 16:19:13
【问题描述】:
我在将 Json 字符串反序列化为对象时遇到问题。
这是我从网络服务收到的示例 json:
{
"GetDataResult":
"{
\"id\":1234,
\"cityname\":\"New York\",
\"temperature\":300,
}"
}
我有一个像这样的类 CityData
[JsonObject("GetDataResult")]
public class CityData
{
[JsonProperty("id")]
public int Id { get; set; }
[JsonProperty("cityname")]
public string CityName { get; set; }
[JsonProperty("temperature")]
public int Temperature { get; set; }
}
我尝试通过调用 DeserializeObject 方法来反序列化 json
var cityData = JsonConvert.DeserializeObject<CityData>(response);
但根元素似乎有问题......
你们知道我该如何解决它,以便我收到一个填写了数据的 CityData 对象吗?
【问题讨论】:
-
什么是
response? JSON 中GetDataResult属性的值是一个字符串,因此不会以您期望的方式反序列化为属性。 -
Web 服务正在吐出错误的 JSON。这在技术上是合法的,但显然不是你想要的。那里的转义字符串引号......这一切都很糟糕。
-
他可能正在使用 WCF 可怕的 JSON“包装”,或者类似的东西。