用PlantUML可视化显示JSON

概述

PlantUML除了绘制UML中的一些标准图之外,也可以以图形化的方式显示一些其他图形或数据形式的结构,这其中就包括JSON。

它以一种简单且优美的图形形式,表达了JSON的结构。你可以用它来作为设计JSON数据文件的依据,辅助设计或理解。

绘制方法

起止符号

@startjson@endjson

JSON对象

@startjson
{"name":"张三"
}
@endjson

效果如下:
在这里插入图片描述

JSON数组

@startjson
["Red","Green","Blue"]
@endjson

效果如下:
在这里插入图片描述

复杂结构

@startjson
{'文本"name":"色板1",'数组"colors":["Red","Green","Blue",'子对象{"r":255,"g":255,"b":255}],'null"group":null,'空数组"tag":[],'数字 -- 整数和浮点数"index":3,"f":2.0,'布尔值"is_show":false,"readonly":true
}@endjson

效果如下:
在这里插入图片描述

高亮条目

#highlight 跟上"key" / "key"形式的路,可以高亮条目。
遇上数组可以指定项的索引。

@startjson
'一级元素直接指定key
#highlight "name"
'子级元素指定路径
#highlight "colors" / 3 / "r" 
'数组元素可以指定索引
#highlight "colors" / 0
{'文本"name":"色板1",'数组"colors":["Red","Green","Blue",'子对象{"r":255,"g":255,"b":255}],'null"group":null,'空数组"tag":[],'数字 -- 整数和浮点数"index":3,"f":2.0,'布尔值"is_show":false,"readonly":true
}@endjson

绘制如下:
在这里插入图片描述

修改JSON图的样式

与其他PlantUML图一样,我们都可以设定图的元素的全局样式样式,或创建自定义样式类然后用<<类名>>形式引用。

<style>
'限定为JSON图设定样式
jsonDiagram {'所有节点node {'样式属性和值设定}'所有箭头arrow {'样式属性和值设定}'所有高亮highlight {'样式属性和值设定}'自定义样式类.red{'样式属性和值设定}
}
</style>
类与标签指定形式
@startjson
<style>
.red{BackGroundColor red
}
.green{BackGroundColor greenFontColor white
}
.blue{BackGroundColor blueFontColor white
}
</style>'一级元素直接指定key
#highlight "name" <<red>>
'子级元素指定路径
#highlight "colors" / 3 / "r"  <<green>>
'数组元素可以指定索引
#highlight "colors" / 0 <<blue>>
{'文本"name":"色板1",'数组"colors":["Red","Green","Blue",'子对象{"r":255,"g":255,"b":255}],'null"group":null,'空数组"tag":[],'数字 -- 整数和浮点数"index":3,"f":2.0,'布尔值"is_show":false,"readonly":true
}@endjson

绘制如下:
在这里插入图片描述

指定JSON图特有的元素样式
@startjson
<style>
jsonDiagram{node{BackGroundColor pinkLineColor red}arrow{LineColor red}highlight{BackGroundColor orange}.red{BackGroundColor red}
}</style>'一级元素直接指定key
#highlight "name" <<red>>
'子级元素指定路径
#highlight "colors" / 3 / "r"
'数组元素可以指定索引
#highlight "colors" / 0
{'文本"name":"色板1",'数组"colors":["Red","Green","Blue",'子对象{"r":255,"g":255,"b":255}],'null"group":null,'空数组"tag":[],'数字 -- 整数和浮点数"index":3,"f":2.0,'布尔值"is_show":false,"readonly":true
}@endjson

绘制如下:
在这里插入图片描述

使用类MarkDown或HTML形式修饰JSON图元素

@startjson
{
"类MarkDown形式":{"粗体": "**粗体**","斜体": "//斜体//","删除线": "--删除线--"},
"类HTML形式":{"粗体": "<b>粗体","斜体": "<i>斜体","monospaced": "<font:monospaced>monospaced","删除线": "<s>删除线","下划线": "<u>下划线","字色": "<color:blue>蓝色","背景色": "<back:orange>橘色","字号": "<size:20>20"}
}
@endjson

注意:语雀不支持的特性已经去除。完整语法参看:PlantUML:显示JSON数据。
在这里插入图片描述

在其他图中显示JSON图

在其他一些图,如类图、对象图、用例图、组件图中等,都可以使用json关键字定义一个JSON结构并显示在图中。
下面以类图为例:

@startuml
class A
json Data{"name":"张三","children":[{"name":"李四","children":[]}]
}
@enduml

绘制效果如下:

在这里插入图片描述

可以看到,在专门的JSON图和在UML的一些图中创建的json元素,其图形样式和展示方式有所区别。

总结

  • 本篇基于官方文档的示例,自己上手试验,以及编写自己的实例,用来总结一下PlantUML中JSON数据的表示。
  • JSON的图形化或可视化,在Godot游戏设计中或许可以一用,用来在游戏文档或其他地方存储或表达自己的设计。
  • 可惜的是单独的JSON图目前不支持标题、页脚以及note等特性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/42899.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

day01:项目概述,环境搭建

文章目录 软件开发整体介绍软件开发流程角色分工软件环境 外卖平台项目介绍项目介绍定位功能架构 产品原型技术选型 开发环境搭建整体结构&#xff1a;前后端分离开发前后端混合开发缺点前后端分离开发 前端环境搭建Nginx 后端环境搭建熟悉项目结构使用Git进行版本控制数据库环…

【C++】AVL树(旋转、平衡因子)

&#x1f308;个人主页&#xff1a;秦jh_-CSDN博客&#x1f525; 系列专栏&#xff1a;https://blog.csdn.net/qinjh_/category_12575764.html?spm1001.2014.3001.5482 ​ 目录 前言 AVL树的概念 节点 插入 AVL树的旋转 新节点插入较高左子树的左侧---左左&#xff1a;…

【C++】stack和queue的模拟实现 双端队列deque的介绍

&#x1f525;个人主页&#xff1a; Forcible Bug Maker &#x1f525;专栏&#xff1a; STL || C 目录 &#x1f308;前言&#x1f525;stack的模拟实现&#x1f525;queue的模拟实现&#x1f525;deque&#xff08;双端队列&#xff09;deque的缺陷 &#x1f308;为什么选择…

基于Go 1.19的站点模板爬虫

创建一个基于Go 1.19的站点模板爬虫涉及到几个关键步骤&#xff1a;初始化项目&#xff0c;安装必要的包&#xff0c;编写爬虫逻辑&#xff0c;以及处理和存储抓取的数据。下面是一个简单的示例&#xff0c;使用goquery库来解析HTML&#xff0c;并使用net/http来发起HTTP请求。…

【containerd】解决敲击crictl images命令报错问题

【Containerd】解决输入crictl images命令报错问题 文章目录 【Containerd】解决输入crictl images命令报错问题问题复现解决办法验证结果参考链接 问题复现 [rootmaster01 ~]# crictl images WARN[0000] image connect using default endpoints: [unix:///var/run/dockershim…

七、Docker常规软件安装

目录 一、总体步骤 二、安装tomcat 1、docker hub上查找tomcat镜像 三、安装MySQL 1、查看MySQL镜像 2、拉取MySQL镜像到本地,本次拉取MySQL5.7 3、使用MySQL镜像创建容器 4、使用Windows数据库工具&#xff0c;连接MySQL实例 5、常见问题 6、创建MySQL容器实例 7、新…

DDP:微软提出动态detection head选择,适配计算资源有限场景 | CVPR 2022

DPP能够对目标检测proposal进行非统一处理&#xff0c;根据proposal选择不同复杂度的算子&#xff0c;加速整体推理过程。从实验结果来看&#xff0c;效果非常不错 来源&#xff1a;晓飞的算法工程笔记 公众号 论文: Should All Proposals be Treated Equally in Object Detect…

同声传译app哪个好免费?对话交流推荐这5个

暑期到&#xff0c;也是旅游出行的好日子~自打周边不少国家都开放免签政策之后&#xff0c;出国游也变得更加方便了~对于外语水平不高的朋友来讲&#xff0c;想要保证出行体验&#xff0c;其实手上只要备好一个同声传译app就OK&#xff01; 倘若你还不清楚都有哪些同声传译app…

背部筋膜炎的症状及治疗

背部筋膜炎&#xff0c;也称为胸背肌筋膜炎&#xff0c;主要是由于劳损或风寒湿邪侵入引起的。其典型症状主要包括&#xff1a; 1、疼痛&#xff1a;背部筋膜一旦出现炎症性病变&#xff0c;会对周围交感神经组织产生刺激作用&#xff0c;从而引起不同程度的疼痛症状。 2、僵…

NAT:地址转换技术

为什么会引入NAT&#xff1f; NAT&#xff08;网络地址转换&#xff09;的引入主要是为了解决两个问题 IPv4地址短缺&#xff1a;互联网快速发展&#xff0c;可用的公网IP地址越来越少。网络安全&#xff1a;需要一种方法来保护内部网络不被直接暴露在互联网上。 IPv4 &…

低通滤波以及卡尔曼滤波

先讲解几个低通滤波&#xff0c;低通滤波比卡尔曼滤波简单&#xff0c;因为卡尔曼滤波涉及到两个输入量&#xff0c;一个是控制量&#xff0c;一个是观测量&#xff0c;而低通滤波是一个输入量 1&#xff0c;利用工具箱配置低通滤波 参考地址&#xff1a;https://blog.csdn.net…

SystemUIService启动-Android13

SystemUIService启动-Android13 1、SystemUIService启动2、其他SystemUI services启动2.1 Dagger依赖注入2.2 Recents为例 1、SystemUIService启动 SystemUI启动&#xff0c;及其SystemUIService启动 <!-- SystemUi service component --><string name"config_s…

应用层协议原理——可供应用程序使用的运输服务

前面讲过套接字是应用程序进程和运输层协议之间的接口。在发送端的应用程序将报文推进该套接字。在该套接字的另一侧&#xff0c;运输层协议负责使该报文进入接收进程的套接字。 包括因特网在内的很多网络提供了不止一种运输层协议。当开发一个应用时&#xff0c;必须选择一种可…

什么是海外仓管理自动化?策略及落地实施步骤指南

作为海外仓的管理者&#xff0c;你每天都面临提高海外仓运营效率、降低成本和满足客户需求的问题。海外仓自动化管理技术为这些问题提供了不错的解决思路&#xff0c;不过和任何新技术一样&#xff0c;从策略到落地实施&#xff0c;都有一个对基础逻辑的认识过程。 今天我们整…

重生奇迹mu的地图名

地图之一&#xff1a;勇者大陆 勇者大陆地处奇迹大陆中央。终年阴雨连绵&#xff0c;气候潮湿闷热。植物由充满黑暗阴森气氛的草地所构成。这里的NPC数量是所有地图中最多的。因为地步交通要冲&#xff0c;所以也是玩家聚集最多的地方。 这里是剑士、魔法师、魔剑士和圣导师初…

vue3关于在线考试 实现监考功能 推流拉流

vue3 关于在线考试 实现监考功能&#xff0c; pc端考试 本质是直播推流的功能 使用腾讯云直播: 在线文档 index.html <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><link rel"icon" href"/f…

永磁同步电机控制算法--最大转矩电流比控制(虚拟信号注入法)

目前&#xff0c;国内外相关学者对 MTPA 控制方法进行了一系列的理论研究与仿真分析。通过研究取得的成果综合来看&#xff0c;该控制方法主要有&#xff1a;直接公式计算法、曲线拟合法、查表法、搜索法、高频信号注入法以及参数辨识法等。 之前的文章中已经介绍了直接公式计…

Java.Maths类的常用方法

Maths类的常用方法 Math 类是 Java 标准库中的一个类&#xff0c;位于 java.lang 包中。它提供了一些基本的数学操作方法&#xff0c;这些方法都是静态的。以下是 Math 类的所有方法&#xff1a; 数学常量 double E: 自然对数的底数&#xff08;约等于 2.718&#xff09;doub…

对于“百模大战”,几乎所有大佬的口风都180 °大转变了?

文 | 智能相对论 作者 | 陈泊丞 在2024世界人工智能大会暨人工智能全球治理高级别会议产业发展主论坛上&#xff0c;百度创始人、董事长兼首席执行官李彦宏谈了些对于AI大模型的看法&#xff0c;语惊四座。 他先是指出&#xff0c;“百模大战造成了社会资源的巨大浪费&#x…

ubuntu 如何复制文件夹的内容

在Ubuntu中&#xff0c;您可以使用cp命令来复制文件夹的内容。如果您想要复制文件夹及其所有内容&#xff08;包括子文件夹&#xff09;&#xff0c;可以使用-r&#xff08;递归&#xff09;选项。 cp -r /path/to/source/folder/* /path/to/destination/folder/ 这个命令会将s…