解析带有 @ 符号的 JSON (arobase)

IT技术 javascript json titanium at-sign
2021-03-16 03:34:30

我的 JSON 对象评估为:

{ "@io": IO, "@type": XXX }

如果调用此变量my_json,我如何访问@typeXXX值?我试过my_json.@type,但这是给出错误。帮助表示赞赏。谢谢,

缺口

3个回答

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

var XXXValue = my_json['@type'];

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

var propertyName = '@type';
var XXXValue = my_json[propertyName];
一个很老的问题,但它出现在谷歌搜索中。JSON 中的 @ 符号是 JSON-LD(JSON for Linked Data)。 en.wikipedia.org/wiki/JSON-LD
2021-05-01 03:34:30
将 XML 转换为 JSON 时经常使用 @ 符号,即节点的属性将映射到 @,因此 <product id="p1"/> 将生成带有 "@id":"p1" 的 JSON
2021-05-02 03:34:30
json文件中@符号的用途是什么?它在 json 上下文中是否有任何附加含义?
2021-05-06 03:34:30
@boulder_ruby 我认为它经常被用来将它放在字母排序的顶部以使其脱颖而出(重要的元数据,...)
2021-05-06 03:34:30
@David 在这样的字符串中,它在问题中的任何上下文(JSON、JS 等)中都没有特定含义。我不知道为什么 OP 有这样命名的键,但它在讨论的技术中没有任何意义。
2021-05-08 03:34:30

正如您所发现的,您不能在 Javascript 变量名称中使用 @ 符号,这my_json.@type是无效的。

对您来说好消息是您可以将变量作为数组下标访问。你会这样做:

my_json["@type"]

希望有帮助。

如果我错了,请纠正我,但我认为您不应该在这里使用“数组”这个词。
2021-05-04 03:34:30

如果它最终进行评估,您可以拿走该对象并可能通过钥匙抓住它。

即 obj["@type"]。但似乎有些不对劲。