Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
I';我正在尝试将json转换为c#对象_C#_.net_Json - Fatal编程技术网

I';我正在尝试将json转换为c#对象

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

我试过几种方法来做这件事,但似乎都没有成功

我编写了一段代码来创建http get请求。这个很好用。它得到一个json repsonse

响应如下所示:

    [
    {
        "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中内置了一个,或者可以使用流行的库来实现。您需要遵循这些步骤,然后如果遇到特定问题,您可以创建一个问题。表现出努力!嗨,谢谢你的回复@梅森:谢谢你的提示,我完全按照你说的做了,并设法解决了我的问题。好的,等我有时间的时候,我会给我的问题添加一个代码示例。谢谢你的回复,这也很有帮助