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
json
tuberí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ó!json
tubería incorporada , como en Angular 1.implements PipeTransform
despuésexport class PrettyPrintPipe
Como este es el primer resultado en Google, permítanme agregar un resumen rápido:
si solo necesita imprimir JSON sin el formato adecuado, la
json
tuberí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 prettyjson
innerHTML
funció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