Intentando escribir una tubería Angular 2 que tomará una cadena de objeto JSON y la devolverá impresa / formateada para mostrarla al usuario.
Por ejemplo, tomaría esto:
{"id": 1, "número": "K3483483344", "estado": "CA", "activo": verdadero}
Y devuelve algo que se parece a esto cuando se muestra en HTML:
Entonces, en mi opinión, podría tener algo como:
<td> {{ record.jsonData | prettyprint }} </td>


Respuestas:
Me gustaría agregar una forma aún más simple de hacer esto, usando la
jsontubería incorporada :De esta forma, se conserva el formato.
fuente
<pre>y no funcionará con<p>, por ejemplo<span>Crearía una tubería personalizada para esto:
y utilícelo de esta manera:
Vea este stackblitz: https://stackblitz.com/edit/angular-prettyprint
fuente
<div>{{obj | prettyprint }}</div>pero funcionó!jsontubería incorporada , como en Angular 1.implements PipeTransformdespuésexport class PrettyPrintPipeComo este es el primer resultado en Google, permítanme agregar un resumen rápido:
si solo necesita imprimir JSON sin el formato adecuado, la
jsontubería incorporada sugerida por Shane Hsu funciona perfectamente:<pre>{{data | json}}</pre>sin embargo, si desea tener una salida diferente, deberá crear su propia tubería como sugirió Thierry Templier:
ng g generate pipe prettyjsoninnerHTMLfunción:fuente
dado que mi variable está enlazada bidireccionalmente con ngModel, no pude hacerlo en html. Lo usé en el lado de los componentes
JSON.stringify(displayValue, null, 2)e hizo el trabajo.fuente