访问标签中带有冒号的JSON数据

k5ifujac  于 2023-01-22  发布在  其他
关注(0)|答案(2)|浏览(183)

我有一个标签中有冒号的json数据(参见responsedata),我发现使用以下代码很难在Angular中访问它:

<li ng-repeat="i in items.autnresponse.responsedata | searchFor:searchString"> <p>{{i.autn:numhits}}</p> </li>

我一直收到这样的错误:
Error: [$parse:syntax] Syntax Error: Token ':' is an unexpected token at column 7 of the expression [i.autn:numhits] starting at [:numhits].
JSON数据摘录:

"autnresponse": {
    "action": {
        "$": "QUERY"
    },
    "response": {
        "$": "SUCCESS"
    },
    "responsedata": {
        "autn:numhits": {
        "$": "92"
    },
    "autn:totalhits": {
        "$": "92"
    },
    "autn:totaldbdocs": {
        "$": "188"
    },
    "autn:totaldbsecs": {
        "$": "188"
    },

有人知道怎么解决吗?

bxfogqkk

bxfogqkk1#

我会假设我知道我的问题的答案从评论和张贴什么会是我的回应:

假设

JSON解析很好,但是代码无法访问结果数据结构中的某些内容

回答我

对字符串使用方括号表示法:

var x = i['autn:numhits'];

当变量中有属性名时,也可以使用相同的方法。使用相同的示例:

var propertyName = 'autn:numhits';
var x = i[propertyName];

增编

对于Angular 模板,请尝试

{{i['autn:numhits']}}
gajydyqb

gajydyqb2#

使用方括号像字典一样访问它,而不是使用点标记法。将{{i.autn:numhits}}替换为{{i['autn:numhits']}}
提醒一下,如果你想用双引号把autn:numhits括起来,你需要用html转义它们。

相关问题