反序列化部分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);