admin管理员组

文章数量:1405385

I wonder how do people display pretty print of JSON in Vue.js

<v-expansion-panels>
  <v-expansion-panel v-for="(entrie, i) in objects.log.entries" :key="i">
    <v-expansion-panel-header class="text-left">

      {{ entrie.request.postData.text }}
    </v-expansion-panel-header>
    <v-expansion-panel-content class="green--text">

      {{ entrie.response.content.text }}

    </v-expansion-panel-content>
  </v-expansion-panel>
</v-expansion-panels>

Fiddle

Just to make my point clear, I'm hoping to see something like this :

I wonder how do people display pretty print of JSON in Vue.js

<v-expansion-panels>
  <v-expansion-panel v-for="(entrie, i) in objects.log.entries" :key="i">
    <v-expansion-panel-header class="text-left">

      {{ entrie.request.postData.text }}
    </v-expansion-panel-header>
    <v-expansion-panel-content class="green--text">

      {{ entrie.response.content.text }}

    </v-expansion-panel-content>
  </v-expansion-panel>
</v-expansion-panels>

Fiddle

Just to make my point clear, I'm hoping to see something like this :

Share Improve this question edited Feb 7, 2022 at 22:30 code-8 asked Feb 7, 2022 at 22:22 code-8code-8 58.9k120 gold badges391 silver badges670 bronze badges 1
  • stackoverflow./a/7220510 – Adam Jeliński Commented Feb 7, 2022 at 22:31
Add a ment  | 

1 Answer 1

Reset to default 6

You can add a filter to stringify the data in a nicer format.

filters: {
  pretty: (val, indent = 2) => {
    if (typeof val !== "object") {
      try {
        val = JSON.parse(val)
      } catch (err) {
        console.warn("value is not JSON")
        return val
      }
     
      return JSON.stringify(val, null, indent)
    }
  }
}

Use CSS white-space or simply use a <pre> tag to keep formatting in your template

<pre>{{ entrie.response.content.text | pretty(4) }}</pre>

Demo ~ https://jsfiddle/ktz49q1h/


Note that filters are not supported in Vue3. See the migration strategy for solutions.

本文标签: javascriptDisplay pretty print of JSON in VuejsStack Overflow