9
votes

Sortie Un serveur a généré un objet JSON dans Jade sans analyse JSON

J'ai un objet JSON qui ne correspond pas aux normes JSON, et je ne peux pas modifier la structure de l'objet pour le rendre adhéré aux normes JSON.

J'ai besoin de rendre cet objet rendu au milieu d'un bloc JavaScript dans un modèle de jade. L'objet est en fait un objet de configuration qui va dans un bloc de fonction dans le modèle. P>

Voici l'objet. p> xxx pré>

Mise à jour forte> Voici comment je reçois cet objet à partir d'un fichier JS. P>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="test"></div>


2 commentaires

Quel est le problème spécifique? Qu'avez-vous essayé que cela n'a pas fonctionné? Êtes-vous simplement afficher une chaîne?


Mis à jour pour donner le problème actuel.


3 Réponses :


0
votes

4 commentaires

La meilleure solution consiste à me faire preuve de moi quelle que soit la méthode .tostring () ajoute des caractères de formatage tels que \ n et \ t . Comment puis-je supprimer ceux-ci aussi?


Édité de sortir \ n et \ t. Également modifié la chaîne de remplacement de la chaîne vide à un seul espace, juste au cas où. Cela nécessitera plus de modifications si vous utilisez des guillemets doubles dans vos fonctions ou si vous utilisez des caractères d'évacuation (vous pouvez jouer avec la regex de remplacement - peut avoir besoin de plusieurs appels de remplacement).


Avoir-le supprimer, les personnages fonctionnent, mais j'ai trouvé que cela interfère avec des commentaires qui sont dans le code // commencent ensuite tout le bloc JavaScript. J'ajoute une prime à cela. J'espère que nous pourrons avoir cette dernière partie figurant et je vais jeter la prime de votre façon. Merci :)


@zmanc, édité; J'espère que cela fonctionne pour vous :) - une limitation est que cela ne gère actuellement pas d'objets imbriqués avec le même nom de propriété faisant référence à différentes fonctions.



2
votes

Pour supprimer de nouveaux caractères de ligne en toute sécurité, les «commentaires» doivent être supprimés d'abord:

p>

"Faux">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<pre id="result"></pre>


2 commentaires

Cela m'a la plus grande partie, était une petite partie où je devais m'occuper, mais c'était la base des solutions. Merci.


Pour ceux qui sont curieux, voici les deux choses que je devais changer: .replace (/ [\ r \ n \ t] / g, '') .replace (/ \ u007d $ /, '},')



3
votes

Si je comprends votre demande correctement (que vous souhaitez prendre le contenu d'un fichier chargé à l'extérieur, puis le charger dans un