2016-01-13 5 views
0

Ответ JSON, возвращаемый API RESTful, содержит символ @ для некоторых ключей, а другие клавиши сделаны таким образом («document.title»).json2html как обращаться со специальными символами (например, @) в json-ключах

Моя часть JSON выглядит так.

"fields": { 
 
    "document.content_type": [ 
 
    "application/ms-word" 
 
    ], 
 
    "document.name": [ 
 
    "zh1.docx" 
 
    ], 
 
    "@title": [ 
 
    "The History of the Pencil" 
 
    ], 
 
    "@date": [ 
 
    "2016-01-13T07:30:25-0500" 
 
    ], 
 
    "document.content": [ 
 
    "some text goes here" 
 
    ], 
 
    "@guid": [ 
 
    "76c99131-23b1-4435-9b93-eaabd9e33a67" 
 
    ] 
 
}

В обычном JavaScript/JQuery, я легко может получить доступ к этим значения, делая полей [ "@ название"] [0], чтобы получить титул или поля [ "document.content"] [0], чтобы получить содержимое документа, но этот формат не работает в преобразовании json2html.

Например, этот код в преобразовании не работает.

{"tag":"h4","html":"${fields['document.name'].0}"} 

Может кто-нибудь мне точку, как я могу в JSon/html преобразования доступа к этим специальным тегам JSon. Я знаю, что в некоторых случаях я могу изменить теги на более стандартный формат, но что, если я не могу их изменить или по какой-то причине они должны оставаться таковыми?

ответ

1

json2html transform разделяет строку внутри $ {} на ".". Вы можете изменить ключи, чтобы быть совместимым с преобразованием, например .:

for(var k in data.fields){ 
    if(k.match(/\./)){ 
    data.fields[k.replace(/\./g, '_')] = data.fields[k]; 
    } 
} 

Plunk

+0

Спасибо большое! Пойдет так. Замена оскорбительных символов в ответе довольно легко сделать и кажется решением. –

Смежные вопросы