Javascript AngularJS没有解析我们的JSON数组属性

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":

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": "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传递。