2015-03-16 1 views
0

Я получаю объект JSON, который выглядит примерно так и продолжают поступать с неопределенным при попытке получить имя работодателя:Как извлечь данные из объекта JSON, полученные из веб-службы, с одинарными кавычками и фигурными скобками?

{ 
name: 'Freddy Krueger', 
birthdate: 'March 16, 2015', 
email: '[email protected]', 
'employer[name]': 'Some Employer, Inc', 
'employer[address]': '1428 Elm St. Springwood, OH 00666' 
} 

Как я должен получить доступ к данным работодателя? obj.name, obj.birthdate и т. д. не проблема. Но obj.'employer [name] 'не работает, конечно. Я пробовал каждую версию, я могу думать о obj.employer ['name'] нехорошо, я получаю сообщение об ошибке TypeError: Не могу прочитать свойство 'name' undefined Кажется, что-то глупое, но все, что я делаю Google для только упоминает использование кавычек в ваших значениях, и такие, и скобки для массивов. Ничего не связано с получением данных с одинарными кавычками и скобками в имени пары.

Я видел их структуру, чтобы соответствовать этому, это будет выглядеть так:

{ 
"name": "Freddy Krueger", 
"birthdate": "March 16, 2015", 
"email": "[email protected]", 
"employer": { 
    "name": "Some Employer, Inc", 
    "address": "1428 Elm St. Springwood, OH 00666" 
} 
} 

Там больше данных, но это показывает часть У меня возникли проблемы с. Иногда «работодатель» также будет иметь телефон, факс, электронную почту, веб-сайт и т. Д. Он по-прежнему выглядит так же, как мой первый пример, только с новыми парами добавлены как «работодателя [независимо]»: «значение»

+0

В этом случае ваше имя свойства в кавычках будет считаться типом строки. Другая нотация объекта верна для получения данных. Однако, если вы не можете изменить приближающийся JSON, тогда мы можем написать метод для обработки имени свойства и создания в правильной структуре. – Vaibhav

+0

То, что вы разместили, не JSON. –

ответ

2

Используйте объект обозначения:

var employerName = obj['employer[name]']; 
var employerAddress = obj['employer[address]']; 

Рабочий пример: http://jsfiddle.net/rbsdp4f2/

0

Для того, чтобы получить имя, которое вы должны сделать

`obj["employer[name]"]` 

и не

obj."employer[name]" 
Смежные вопросы