我正在尝试将 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 转换为 c# 对象

这取决于你想做什么。我的建议是简单地使用 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);