I';我正在尝试将json转换为c#对象
我试过几种方法来做这件事,但似乎都没有成功 我编写了一段代码来创建http get请求。这个很好用。它得到一个json repsonse 响应如下所示:I';我正在尝试将json转换为c#对象,c#,.net,json,C#,.net,Json,我试过几种方法来做这件事,但似乎都没有成功 我编写了一段代码来创建http get请求。这个很好用。它得到一个json repsonse 响应如下所示: [ { "date": "2014-12-08", "activityTimeSeries": [ { "timezone": "Europe/Helsinki", "start_time": "2014-12
[
{
"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
}
]
}
]
我怎样才能让它工作呢?只需使用NewtonsoftJson即可 这样做
var obj = JsonConvert.DeserializeObject<YourClass>(responseString);
var obj=JsonConvert.DeserializeObject(responseString);
这取决于你想做什么。我的建议是只使用JSON库,除非您有特别的理由不这样做
我使用的是Json.NET。这相当简单,特别是如果您有Java中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);
JsonContainer jc=JsonConvert.DeserializeObject(此处json为字符串);
如果没有更多的信息,比如你实际做了什么,我不确定你能得到多少帮助。这个问题似乎离题了,因为它是通过简单的网络搜索解决的。你是否用JSON字符串化了你的对象,以便它可以被C反序列化?你的代码不知怎么看不见。当你需要反序列化JSON时,通常最好是1)通过运行来确保JSON有效2)创建一个对象模型来表示响应(例如工具可以帮助实现这一点,尽管它们的输出并不总是完美的),3)选择反序列化库-在.NET中内置了一个,或者可以使用流行的库来实现。您需要遵循这些步骤,然后如果遇到特定问题,您可以创建一个问题。表现出努力!嗨,谢谢你的回复@梅森:谢谢你的提示,我完全按照你说的做了,并设法解决了我的问题。好的,等我有时间的时候,我会给我的问题添加一个代码示例。谢谢你的回复,这也很有帮助