我正在尝试将 json 转换为 c# 对象
本文关键字:转换 对象 json | 更新日期: 2023-09-27 18:34:03
我已经尝试了几种方法来做到这一点,但我似乎没有成功。
我写了一段代码来创建 http get 请求。 这工作正常。它得到一个 json 回复。
响应如下所示:
[
{
"date": "2014-12-08",
"activityTimeSeries": [
{
"timezone": "Europe/Helsinki",
"start_time": "2014-12-07T22:00:00Z",
"steps": {
"link": "/api/users/nxrogcjqjfwokltr/data/unify_data/54880e2933ae997aa32c2236"
},
"source": "fitbit"
}
],
"gpx": [],
"exercise": [],
"activity": [
{
"distance": 4520,
"caloriesTotal": 2451,
"caloriesBMR": 1866,
"source": "fitbit",
"steps": 5581,
"caloriesActive": 585
}
]
},
{
"date": "2014-12-09",
"activityTimeSeries": [
{
"timezone": "Europe/Helsinki",
"start_time": "2014-12-08T22:00:00Z",
"steps": {
"link": "/api/users/nxrogcjqjfwokltr/data/unify_data/54880c0d33ae997aa32c2219"
},
"source": "fitbit"
}
],
"gpx": [],
"exercise": [],
"activity": [
{
"distance": 3960,
"caloriesTotal": 2414,
"caloriesBMR": 1866,
"source": "fitbit",
"steps": 4896,
"caloriesActive": 548
}
]
}
]
我怎样才能让它工作?
这取决于你想做什么。我的建议是简单地使用 JSON 库,除非您有特殊原因不这样做。
Json.NET 是我使用的。这相当简单,特别是如果你有任何Java中JSON的经验。
http://james.newtonking.com/json
https://github.com/JamesNK/Newtonsoft.Json
使用该库,您需要创建一个容器类,我相信使用与 JSON 条目标题相同的变量名称。
class JsonContainer
{
public DateTime date { get; set; };
public string[] activityTimeSeries { get; set; };
etc.
}
当你有一个可以反序列化的模型对象时,只需按照以下方式调用一些东西
JsonContainer jc = JsonConvert.DeserializeObject<JsonContainer>(your json as a string here);
如果没有更多的信息,比如你实际做了什么,我不确定你能得到多少帮助。
只需使用 NewtonsoftJson
https://www.nuget.org/packages/Newtonsoft.Json/
并这样做
var obj = JsonConvert.DeserializeObject<YourClass>(responseString);