Deserializzare JSON parziale

Ho un problema con la deserializzazione di una stringa Json in un object.

Questo è un esempio di json che ricevo da un servizio web:

{ "GetDataResult": "{ \"id\":1234, \"cityname\":\"New York\", \"temperature\":300, }" } 

E ho un CityData di class che assomiglia a questo

 [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; } } 

Provo a deserializzare il JSON con una chiamata del metodo DeserializeObject

 var cityData = JsonConvert.DeserializeObject(response); 

ma l’elemento radice sembra creare problemi …

Ragazzi, sapete come posso sistemarlo, in modo da ricevere un object CityData con i dati compilati?

La risposta JSON contiene un object che contiene al suo interno una stringa JSON che rappresenta il risultato dei dati.

È necessario deserializzare due volte, una volta per la risposta e un’altra per il risultato dei dati.

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