反序列化部分JSON

我有一个问题,将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(response); 

但根元素似乎有问题……

你们知道我怎么解决它,所以我收到一个填充了数据的CityData对象?

json响应包含一个对象,该对象本身包含表示数据结果的json字符串。

您需要反序列化两次,一次用于响应,另一次用于数据结果。

 var response = JsonConvert.DeserializeObject(responseStr); var dataResult = (string)response["GetDataResult"]; var cityData = JsonConvert.DeserializeObject(dataResult);