2011-08-03 25 views
20

我的JSON對象計算爲標誌符號:解析JSON瓦特/ @在它(arobase)

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

如果這個變量稱爲my_json,怎樣訪問XXX的@type價值?我試過[email protected],但這是給錯誤。幫助讚賞。謝謝,

尼克

+0

我的第一個傾向將是在解析它之前對HTTP響應進行字符串替換。也許用「at_​​」替代「@」的所有實例。 –

+1

我不明白爲什麼這個問題被拒絕,並且因爲很多人想知道如何訪問一個具有奇怪命名的對象屬性或方法,或者當他們只有一個包含字符串中屬性名稱的var時,我會調用。 – JAAulde

+0

,因爲我相信它已被多次在這個論壇上回答http://stackoverflow.com/questions/1710103/accessing-json-fields-with-weird-characters –

回答

30

用方括號用字符串:

var XXXValue = my_json['@type']; 

當你有一個變量屬性名稱同樣可以使用。使用你的相同的例子:

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

json文件中@符號的用途是什麼?它在json上下文中有任何附加的含義嗎? –

+1

@David在這樣的字符串中,它在問題中的任何上下文(JSON,JS等)中沒有具體含義。我不知道爲什麼OP有這樣的鍵名,但在所討論的技術中沒有任何意義。 – JAAulde

+1

這是一個很老的問題,但它出現在Google搜索中。 JSON中的@符號是JSON-LD(關聯數據的JSON)。 http://en.wikipedia.org/wiki/JSON-LD – smoore4

1

如果它結束了評估,你可以採取的對象,可能抓住它的鑰匙。

ie obj [「@ type」]。但有些事情似乎有點關閉。

8

正如您發現的那樣,您不能在Javascript變量名中使用@符號,[email protected]無效。

對你來說好消息是你可以以數組下標的形式訪問你的變量。你會這樣做:

my_json["@type"] 

希望有所幫助。

+1

正確的我如果我錯了,但我不認爲你應該在這裏使用「數組」這個詞。 –