2016-05-03 6 views
1

У меня есть большой массив объектов, которые я передаю через экспресс в шаблон нефрита. Это выглядит следующим образом:Parsing JSON in Jade

[{ big object }, { big object }, { big object }, ...] 

я передать его в шаблон Джейд по stringifying его:

res.render('search-results', { 
    data: JSON.stringify(body) 
}); 

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

each d, i in JSON.parse(data) 
    // Do stuff 

Однако d регистрируется в [object Obj], когда я печатаю это, и я, таким образом, не в состоянии получить доступ к объекту. Когда я пытаюсь сделать JSON.parse(d), он также терпит неудачу, потому что d буквально является строкой «[объект Obj]». Я пробовал передавать данные в шаблон кучу разных способов и не отставал. Есть идеи?

+0

Вам не нужно [строгать данные вообще] (http://stackoverflow.com/a/28149612/1377002) – Andy

+0

Нет, я считаю, что знаю. Если я этого не сделаю, то 'd' все еще записывается как' [object Obj] ', и я не могу получить доступ к каким-либо свойствам. –

+0

Вам не нужно строгать данные, если данные являются допустимым json-объектом –

ответ

0

Fixed, выполнив следующие действия:

При построении массива объектов на внутреннем интерфейсе Экспресс-бока, я строковый каждый из объектов внутри массива. Затем я передал массив строковых объектов JSON в шаблон Jade, который, следовательно, смог разобрать и использовать данные.

0

попробовать each d, i in JSON.parse(data[0])

Поскольку вы отправляете массив объектов, которые необходимо пройти один уровень глубже, чтобы прийти к объектам.