C# 将Json对象转换为实体
我想看看您关于如何在C#中构建实体以适应此Json的一些建议C# 将Json对象转换为实体,c#,json,C#,Json,我想看看您关于如何在C#中构建实体以适应此Json的一些建议 { "activities-heart": [ { "dateTime": "2016-10-25", "value": { "customHeartRateZones": [], "heartRateZones": [ { "max": 88, "min": 30, "nam
{
"activities-heart": [
{
"dateTime": "2016-10-25",
"value": {
"customHeartRateZones": [],
"heartRateZones": [
{
"max": 88,
"min": 30,
"name": "Out of Range"
},
{
"max": 123,
"min": 88,
"name": "Fat Burn"
},
{
"max": 150,
"min": 123,
"name": "Cardio"
},
{
"max": 220,
"min": 150,
"name": "Peak"
}
]
}
}
],
"activities-heart-intraday": {
"dataset": [],
"datasetInterval": 1,
"datasetType": "minute"
}
}
建议:
public class HeartRateZone
{
public int max { get; set; }
public int min { get; set; }
public string name { get; set; }
}
public class Value
{
public List<object> customHeartRateZones { get; set; }
public List<HeartRateZone> heartRateZones { get; set; }
}
public class ActivitiesHeart
{
public string dateTime { get; set; }
public Value value { get; set; }
}
public class ActivitiesHeartIntraday
{
public List<object> dataset { get; set; }
public int datasetInterval { get; set; }
public string datasetType { get; set; }
}
public class RootObject
{
public List<ActivitiesHeart> __invalid_name__activities-heart { get; set; }
public ActivitiesHeartIntraday __invalid_name__activities-heart-intraday { get; set; }
}
公共类HeartRateZone
{
公共int max{get;set;}
公共int min{get;set;}
公共字符串名称{get;set;}
}
公共阶级价值
{
公共列表customHeartRateZones{get;set;}
公共列表heartRateZones{get;set;}
}
公益类活动
{
公共字符串日期时间{get;set;}
公共值{get;set;}
}
公共课堂活动
{
公共列表数据集{get;set;}
public int datasetInterval{get;set;}
公共字符串数据集类型{get;set;}
}
公共类根对象
{
公共列表\uuuu无效\u名称\uuuuu活动-heart{get;set;}
公共活动HeartIntraday\uuuu无效\u名称\uuuu活动-heart-intraday{get;set;}
}
我的问题是,它什么也不返回,它试图构建实体,但它们是空的。是否有转换器和我看不到的东西。假设您正在使用
NewtonSoft
对json进行反序列化(并且非常确定以下内容对其他反序列化程序也是正确的),问题在于您的类
如果为您的类运行以下行,如您所述,我将在属性中获得null
值
var result = JsonConvert.DeserializeObject<RootObject>(jsonString);
JsonPropertyAttribute
:
public class RootObject
{
[JsonProperty("activities-heart")]
public List<ActivitiesHeart> ActivitiesHeart { get; set; }
[JsonProperty("activities-heart-intraday")]
public ActivitiesHeartIntraday ActivitiesHeartIntraday { get; set; }
}
公共类根对象
{
[JsonProperty(“活动心脏”)]
公共列表活动心{get;set;}
[JsonProperty(“日内活动”)]
公共活动HeartIntraday活动HeartIntraday{get;set;}
}
它将立即与JsonProperty一起工作 下面是我调用api和反序列化的方法,只要其他人需要帮助
var apiCall = ToFullUrl("/1/user/{0}/activities/heart/date/{1}/{2}.json", encodedUserId, ToFitbitFormat(startDate), ToFitbitFormat(endDateOrPeriod));
HttpResponseMessage response = await HttpClient.GetAsync(apiCall);
await HandleResponse(response);string responseBody = await response.Content.ReadAsStringAsync();
RootObject entity = JsonConvert.DeserializeObject<RootObject>(responseBody);
var apiCall=ToFullUrl(“/1/user/{0}/activities/heart/date/{1}/{2}.json”),encodedUserId,ToFitbitFormat(startDate),ToFitbitFormat(endDateOrPeriod));
HttpResponseMessage response=等待HttpClient.GetAsync(apiCall);
等待HandlerResponse(响应);string responseBody=wait response.Content.ReadAsStringAsync();
RootObject entity=JsonConvert.DeserializeObject(responseBody);
try NewtonSoft Json dllca是否显示反序列化代码?“我的问题是,这不会返回任何内容,它会尝试构建实体,但实体为空。”何时返回任何内容?反序列化JSON的代码在哪里?如何处理[JsonProperty(“活动心脏”)]
和[JsonProperty(“活动心脏”)]
?
public class RootObject
{
[JsonProperty("activities-heart")]
public List<ActivitiesHeart> ActivitiesHeart { get; set; }
[JsonProperty("activities-heart-intraday")]
public ActivitiesHeartIntraday ActivitiesHeartIntraday { get; set; }
}
var apiCall = ToFullUrl("/1/user/{0}/activities/heart/date/{1}/{2}.json", encodedUserId, ToFitbitFormat(startDate), ToFitbitFormat(endDateOrPeriod));
HttpResponseMessage response = await HttpClient.GetAsync(apiCall);
await HandleResponse(response);string responseBody = await response.Content.ReadAsStringAsync();
RootObject entity = JsonConvert.DeserializeObject<RootObject>(responseBody);