繁体   English   中英

如何反序列化包含分隔JSON的JSON?

[英]How can I deserialize JSON containing delimited 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<CityData>(response);

但根元素似乎有问题......

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM