.NET中的简单挑战



我有一个简单的json格式字符串。

{"access_token": "12345678901234567890", "token_type": "bearer"} 

这是在字符串响应fromerver

我想从刺痛中提取两个值,我不想去设置课等的烦恼。

我尝试了这个

var BearerToken = new[] { new { acccess_token = "", token_type = "" } };
var myObjects = JsonConvert.DeserializeAnonymousType(ResponseFromServer, BearerToken);

但是它不起作用,对简单的东西有任何想法吗?

您遇到的问题是,这里

var BearerToken = new[] { new { acccess_token = "", token_type = "" } };

您将BearerToken声明为匿名类型的数组,而在JSON,您有一个对象。此外,请注意拼写错误:在JSON中,您有access_token在类型声明时您有acccess_token

为简单起见,您可以使用C#

的动态功能
var str = "{"access_token": "12345678901234567890", "token_type": "bearer"}";
dynamic myObject = JsonConvert.DeserializeObject(str);
Console.WriteLine(myObject.access_token); //prints 12345678901234567890
Console.WriteLine(myObject.token_type); //prints bearer

使用匿名类型的工作示例(请注意,您的 BearerToken声明错误,在JSON中有一个对象,而不是数组)如下:

var ResponseFromServer = "{"access_token": "12345678901234567890", "token_type": "bearer"}";
var BearerToken = new { access_token = "", token_type = "" };
var myObject = JsonConvert.DeserializeAnonymousType(ResponseFromServer, BearerToken);
Console.WriteLine(myObject.access_token); //prints 12345678901234567890
Console.WriteLine(myObject.token_type); //prints bearer

使用匿名类型解析的工作示例

使用动态绑定解析的工作示例

如果您确定需要一个对象数组,则需要将JSON包装到Square Brackets []中。这表明您有一系列项目。然后,修复了拼写错误后,您可以在该数组中打印第一个项目的值:

Console.WriteLine(myObjects[0].access_token);
Console.WriteLine(myObjects[0].token_type);

相关内容

  • 没有找到相关文章

最新更新