用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.pswp.cn/diannao/42899.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/42899.shtml
英文地址,請注明出處:http://en.pswp.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…