2011-09-30 12 views
7

Próbuję uzyskać dostęp do pola w obiekcie Json w javascript, który ma klucz "*". jsonstring wygląda następująco:JSON - Pole dostępu o nazwie "*" gwiazdka

{"parse": 
{"text": 
    {"*":"text i want to access"} 
} 
} 

próbuje uzyskać dostęp myObject.parse.text * nie działa, ani nie myObject.parse.text [0].. Szukałem już od godziny, ale nie znalazłem żadnej wskazówki, że gwiazdka ma specjalne znaczenie. Jeśli przechodzę przez całe drzewo i porównuję String a la 'if (key == "*") "Mogę pobrać tekst, który chcę odzyskać, ale chciałbym uzyskać bezpośredni dostęp do tego pola. Czy nie ma dostępu do tego pola?

+9

Kto zaprojektowane, JSON ciąg powinien być spoliczkował wokół bit . –

+2

masz to z api wikipedia, na przykład http://de.wikipedia.org/w/api.php?action=parse&page=Robbie_Williams&format=json&prop=text§ion=0 – simon

+0

To nie jest ładne, ale mogłem to zobaczyć sens w jakimś rodzaju modułu tłumaczącego z przodu. Podobnie jak przy wstawianiu standardowego łańcucha, gdy pewien klucz translacyjny nie istnieje dla określonego języka. – iMe

Odpowiedz

11
json.parse.text["*"] 

Yucky nazwa dla członka obiektu.

+1

Dzięki, że działa również. Jest to dziwna nazwa, jest zwracana przez funkcję "parsowania" API MediaWiki. – Peter

5

Spróbuj użyć operatora indeksu na parse.text:

var value = object.parse.text["*"]; 
+1

Dziękuję bardzo, to działa! – Peter

+0

@genesis Nie rozumiem twojej edycji? Jakiegokolwiek powodu? – Fox32

+0

@ Fox32: tak. Zignorowałem twój post przypadkowo, ale zauważyłem to po długim czasie – genesis

5

spróbuje użyć

var text = myObject.parse.text['*'] 
+1

Dziękuję bardzo, to działa! – Peter

2

Można zrobić:

var json = {"parse": 
{"text": 
    {"*":"text i want to access"} 
} 
} 

alert(json.parse.text['*']);