【问题标题】:Parsing JSON w/ @ at sign symbol in it (arobase)解析带有 @ at 符号的 JSON (arobase)
【发布时间】:2011-10-19 10:50:07
【问题描述】:

我的 JSON 对象计算结果为:

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

如果这个变量被称为my_json,我如何访问XXX的@type值?我试过my_json.@type,但这给出了错误。帮助表示赞赏。谢谢,

尼克

【问题讨论】:

  • 我的第一个倾向是在解析之前对您的 HTTP 响应进行字符串替换。也许用“at_​​”或其他东西替换“@”的所有实例。
  • 我不明白为什么这个问题被否决了,因为很多人想知道如何访问具有奇怪命名的对象属性或方法,或者当他们只有一个包含属性名称的 var 时字符串,我会投票。
  • 因为我相信这个论坛已经多次回答了stackoverflow.com/questions/1710103/…
  • @Aaron Saunders:你链接的问题完全不同......

标签: javascript json titanium at-sign


【解决方案1】:

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

var XXXValue = my_json['@type'];

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

var propertyName = '@type';
var XXXValue = my_json[propertyName];

【讨论】:

  • json 文件中 @ 符号的用途是什么?它在 json 上下文中是否有任何附加意义?
  • @David 在这样的字符串中,它在问题中的任何上下文(JSON、JS 等)中都没有特定含义。我不知道为什么 OP 有这样命名的键,但它在讨论的技术中没有任何意义。
  • 相当老的问题,但它出现在 Google 搜索中。 JSON 中的 @ 符号是 JSON-LD(用于关联数据的 JSON)。 en.wikipedia.org/wiki/JSON-LD
  • @boulder_ruby 我认为它通常用于将其置于字母排序之上以使其脱颖而出(重要的元数据,...)
  • XML 转 JSON 时经常使用 @ 符号,即节点的属性会映射到 @,所以 会生成带有 "@" 的 JSON id":"p1"
【解决方案2】:

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

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

my_json["@type"]

希望对您有所帮助。

【讨论】:

  • 如果我错了,请纠正我,但我认为你不应该在这里使用“数组”这个词。
【解决方案3】:

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

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

【讨论】:

    猜你喜欢
    • 2019-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-21
    • 2019-11-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多