解析HTTP JSON响应 - C#

时间:2015-03-13 13:45:21

标签: c# json http oauth-2.0

我正在为winforms应用程序进行OAUTH2登录。

我必须使用一些凭据向我们发出请求,服务器将以令牌和json格式进行响应。

解析令牌值的最佳方法是什么?

以下是回复格式:

{
    "access_token":"asdfasdfasdfafbasegfnadfgasdfasdfasdf",
    "expires_in":3600,
    "token_type":"Bearer"
}

2 个答案:

答案 0 :(得分:7)

使用这些属性创建一个类,并使用JSON.NET JsonConvert.SerializeObject方法。

public class MyResponse
{
    [JsonProperty("access_token")]
    public string AccessToken { get; set; }
    [JsonProperty("expires_in")]
    public int ExpiresIn { get; set; }
    [JsonProperty("token_type")]
    public string TokenType { get; set; }
}

MyResponse response = new MyResponse();
// Fill in properties
string json = JsonConvert.SerializeObject(response);

答案 1 :(得分:2)

对于较少的代码,您还可以将JSON.NET与动态类型一起使用,如下所示;

public void JValueParsingTest()
{
    var jsonString = @"{""Name"":""Rick"",""Company"":""West Wind"",
                        ""Entered"":""2012-03-16T00:03:33.245-10:00""}";

    dynamic json = JValue.Parse(jsonString);

    // values require casting
    string name = json.Name;
    string company = json.Company;
    DateTime entered = json.Entered;

    Assert.AreEqual(name, "Rick");
    Assert.AreEqual(company, "West Wind");            
}

来源:http://weblog.west-wind.com/posts/2012/Aug/30/Using-JSONNET-for-dynamic-JSON-parsing