Tentando escrever um canal Angular 2 que pegará uma string de objeto JSON e a retornará bem impressa / formatada para ser exibida ao usuário.
Por exemplo, seria necessário:
{"id": 1, "número": "K3483483344", "estado": "CA", "ativo": verdadeiro}
E retorne algo parecido com isto quando exibido em HTML:
Então, na minha opinião, eu poderia ter algo como:
<td> {{ record.jsonData | prettyprint }} </td>
Respostas:
Eu gostaria de adicionar uma maneira ainda mais simples de fazer isso, usando o
json
tubo integrado :Dessa forma, a formatação é preservada.
fonte
<pre>
e não funcionará com<p>
, por exemplo<span>
Eu criaria um tubo personalizado para isso:
e use-o desta forma:
Veja este stackblitz: https://stackblitz.com/edit/angular-prettyprint
fonte
<div>{{obj | prettyprint }}</div>
mas funcionou!json
tubo embutido , assim como em Angular 1.implements PipeTransform
depoisexport class PrettyPrintPipe
Como este é o primeiro resultado no google, deixe-me adicionar um breve resumo:
se você só precisa imprimir JSON sem a formatação adequada, o
json
pipe integrado sugerido por Shane Hsu funciona perfeitamente:<pre>{{data | json}}</pre>
no entanto, se quiser ter uma saída diferente, você precisará criar seu próprio pipe, conforme sugeriu Thierry Templier:
ng g generate pipe prettyjson
innerHTML
função:fonte
uma vez que minha variável tem vínculo bidirecional com ngModel, eu não poderia fazer isso em html. Usei no lado do componente
JSON.stringify(displayValue, null, 2)
e funcionou.fonte