我正在为winforms应用程序进行OAUTH2登录。
我必须使用一些凭据向我们发出请求,服务器将以令牌和json格式进行响应。
解析令牌值的最佳方法是什么?
以下是回复格式:
{
"access_token":"asdfasdfasdfafbasegfnadfgasdfasdfasdf",
"expires_in":3600,
"token_type":"Bearer"
}
答案 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