Javascript AngularJS没有解析我们的JSON数组属性
GET请求返回以下响应:Javascript AngularJS没有解析我们的JSON数组属性,javascript,arrays,json,angularjs,parsing,Javascript,Arrays,Json,Angularjs,Parsing,GET请求返回以下响应: { "access_token": "pi7ID4bsZIC9yN ... 76gnblw", "token_type": "bearer", "expires_in": 1209599, "userName": "super0", "userRoles": "["member", "admin"]", ".issued": "Tue, 04 Feb 2014 05:07:51 GMT", ".expires":
{
"access_token": "pi7ID4bsZIC9yN ... 76gnblw",
"token_type": "bearer",
"expires_in": 1209599,
"userName": "super0",
"userRoles": "["member", "admin"]",
".issued": "Tue, 04 Feb 2014 05:07:51 GMT",
".expires": "Tue, 18 Feb 2014 05:07:51 GMT"
}
问题是AngularJS将其解析为以下对象
data: Object
.expires: "Tue, 18 Feb 2014 05:07:51 GMT"
.issued: "Tue, 04 Feb 2014 05:07:51 GMT"
access_token: "pi7ID4bsZIC9yN ... 76gnblw"
expires_in: 1209599
token_type: "bearer"
userName: "super0"
userRoles: "["member", "admin"]"
__proto__: Object
我们需要“userRoles”来解析为JavaScript数组,而不是如图所示的字符串。我们如何才能做到这一点?这不是有效的JSON。不应引用该数组 它应该是这样的:
{
"access_token": "pi7ID4bsZIC9yN ... 76gnblw",
"token_type": "bearer",
"expires_in": 1209599,
"userName": "super0",
"userRoles": ["member", "admin"],
".issued": "Tue, 04 Feb 2014 05:07:51 GMT",
".expires": "Tue, 18 Feb 2014 05:07:51 GMT"
}
啊哈。这是有道理的。然后问题是我无法返回一个不带引号的数组,因为C#从字典创建JSON GET响应。JSON属性值必须是一个字符串,我不知道如何在引号
data.Add(“userRoles”,“admin”,“member']”之外包含方括号
您可以将其改为字典
,以便userRoles键的值可以是数组(或某种IEnumerable)?然后,它应该正确地序列化。我可以试试,但我犹豫了。ASP.NET Identity的AuthenticationProperties()构造函数使用字典。实现我们自己的AuthenticationProperties类可能就可以做到这一点。不过,这需要一些工作。嗯,我可能只是将用户角色作为CSV传递。