Вывести сгенерированный сервером объект json в jade без разбора json
У меня есть объект JSON, который не соответствует стандартам JSON, и я не могу изменить структуру объекта, чтобы он соответствовал стандартам JSON.
Мне нужно, чтобы этот объект отображался в середине блока javascript в шаблоне Jade. Объект на самом деле является объектом конфигурации, который находится в функциональном блоке в шаблоне.
Здесь объект.
{
services: [],
version: "1438276796258",
country: "default",
role: "User",
Zack_Init: function () {
},
Zack_Global: function (event) {
},
Zack_PostRender: function () {
},
renderers: ['Renderer', 'NONE']
}
ОБНОВИТЬ Вот как я получаю этот объект из файла JS.
function readJSFile(url, filename, callback) {
fs.readFile(url, "utf-8", function (err, data) {
if (err) {
callback(err);
return;
}
try {
callback(filename, data);
} catch (exception) {
callback(exception);
}
});
}
Когда JSON.stringify обрабатывает объект, он отбрасывает три функции в процессе преобразования.
Я добавляю поршень, чтобы показать прогресс текущего решения. Который выводит ниже. Осталось только удалить символы форматирования.
{"services":[],"version":"1438276796258","country":"default","role":"User","Zack_Init":function () {\n\n },"Zack_Global":function (event) {\n\n },"Zack_PostRender":function () {\n\n },"renderers":["Renderer","NONE"]}
function convertToString(obj) {
return JSON.stringify(obj, function(k, v) {
return (typeof v === 'function' ? ['@@beginFunction@@', v.toString(), '@@endFunction@@'].join('') : v);
}).replace(/"@@beginFunction@@|@@endFunction@@"/g, '');
}
obj = {
services: [],
version: "1438276796258",
country: "default",
role: "User",
Zack_Init: function() {
},
Zack_Global: function(event) {
},
Zack_PostRender: function() {
},
renderers: ['Renderer', 'NONE']
};
$('#test').text(convertToString(obj));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="test"></div>