Ausgeben eines vom Server generierten JSON-Objekts in JADE ohne JSON-Analyse

Ich habe ein JSON-Objekt, das nicht den JSON-Standards entspricht, und ich kann die Struktur des Objekts nicht ändern, damit es den JSON-Standards entspricht.

Ich muss dieses Objekt in der Mitte eines Javascript-Blocks in einer Jade-Vorlage rendern lassen. Das Objekt ist eigentlich ein Konfigurationsobjekt, das in einem Funktionsblock in der Vorlage abgelegt wird.

Hier ist das Objekt.

{
  services: [],
  version: "1438276796258",
  country: "default",
  role: "User",
  Zack_Init: function () {

  },
  Zack_Global: function (event) {

  },
  Zack_PostRender: function () {

  }, 
  renderers: ['Renderer', 'NONE']
}

AKTUALISIERE So erhalte ich das Objekt aus einer JS-Datei.

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);
    }
  });
}

Wenn JSON.stringify das Objekt verarbeitet, werden die drei Funktionen im Konvertierungsprozess gelöscht.

Ich füge einen Plunker hinzu, um den Fortschritt der aktuellen Lösung anzuzeigen. Welches gibt das unten aus. Sie müssen nur noch die Formatierungszeichen entfernen.

{"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>

Antworten auf die Frage(6)

Ihre Antwort auf die Frage