What is vue-json-pretty?
vue-json-pretty is a Vue.js component for rendering JSON data in a pretty, formatted way. It is useful for displaying JSON data in a readable format with syntax highlighting and collapsible nodes.
What are vue-json-pretty's main functionalities?
Pretty JSON Rendering
This feature allows you to render JSON data in a visually appealing format. The component takes a JSON object as a prop and displays it with proper indentation and styling.
<template>
<vue-json-pretty :data="jsonData" />
</template>
<script>
import VueJsonPretty from 'vue-json-pretty';
import 'vue-json-pretty/lib/styles.css';
export default {
components: { VueJsonPretty },
data() {
return {
jsonData: {
name: "John Doe",
age: 30,
city: "New York"
}
};
}
};
</script>
Collapsible Nodes
This feature allows you to collapse and expand nodes in the JSON structure. By setting the 'deep' prop, you can control the initial depth of expanded nodes, making it easier to navigate large JSON objects.
<template>
<vue-json-pretty :data="jsonData" :deep="1" />
</template>
<script>
import VueJsonPretty from 'vue-json-pretty';
import 'vue-json-pretty/lib/styles.css';
export default {
components: { VueJsonPretty },
data() {
return {
jsonData: {
name: "John Doe",
details: {
age: 30,
city: "New York"
}
}
};
}
};
</script>
Other packages similar to vue-json-pretty
react-json-view
react-json-view is a React component for displaying JSON data in a similar pretty format with collapsible nodes. It offers more interactivity, such as editing JSON data directly in the view, which vue-json-pretty does not support.
jsoneditor
jsoneditor is a web-based tool that provides a tree view and code editor for JSON data. It is more feature-rich compared to vue-json-pretty, offering editing capabilities, search, and validation, but it is not specifically designed for Vue.js.
json-formatter-js
json-formatter-js is a standalone JavaScript library for rendering JSON in a collapsible tree format. It is framework-agnostic and can be used with any JavaScript project, whereas vue-json-pretty is specifically for Vue.js applications.
vue-json-pretty

A vue 2.x component for rendering JSON data as a tree structure.
- As a JSON Formatter
- Get item data from JSON
Links
Install
npm install vue-json-pretty
Usage
<template>
<div>
...
<vue-json-pretty
:path="'res'"
:data="{ key: 'value' }"
@click="handleClick">
</vue-json-pretty>
</div>
</template>
import VueJsonPretty from 'vue-json-pretty'
export default {
components: {
VueJsonPretty
}
}
Props
- If you are using only the normal features (JSON pretty), just focus on the
base
properties.
- If you are using higher features (Get data), you can use
base
and higher
attributes.
data | normal | json data | JSON object | - |
deep | normal | data depth, data larger than this depth will not be expanded | number | Infinity |
showLength | normal | whether to show the length when closed | boolean | false |
showLine | normal | whether to show the line | boolean | true |
showDoubleQuotes | normal | whether to show doublequotes on key | boolean | true |
highlightMouseoverNode | normal | highlight current node when mouseover | boolean | false |
v-model | higher | defines value when the tree can be selected | string, array | -, [] |
path | higher | root data path | string | root |
pathChecked | higher | defines the selected data path | array | [] |
pathSelectable | higher | defines whether a data path supports selection | Function(itemPath, itemData) | - |
selectableType | higher | defines the selected type, this feature is not supported by default | enum: -, multiple, single | - |
showSelectController | higher | whether to show the select controller at left | boolean | false |
selectOnClickNode | higher | whether to change selected value when click node | boolean | true |
highlightSelectedNode | higher | highlight current node when selected | boolean | true |
Events
click | triggered when a data item is clicked | (path, data) |
change | triggered when the selected value changed (only the selectableType not null) | (newVal, oldVal) |