PlantUML——显示JSON数据

PlantUML显示JSON数据

1、复杂示例

json 复制代码
@startjson
{
    "firstName": "John",
    "lastName": "Smith",
    "isAlive": true,
    "age": 27,
    "address": {
        "streetAddress": "21 2nd Street",
        "city": "New York",
        "state": "NY",
        "postalCode": "10021-3100"
    },
    "phoneNumbers": [
        {
            "type": "home",
            "number": "212 555-1234"
        },
        {
            "type": "office",
            "number": "646 555-4567"
        }
    ],
    "children": [],
    "spouse": null
}
@endjson

2、高亮部分

json 复制代码
@startjson
#highlight "lastName"
#highlight "address" / "city"
#highlight "phoneNumbers" / "0" / "number"
{
    "firstName": "John",
    "lastName": "Smith",
    "isAlive": true,
    "age": 28,
    "address": {
        "streetAddress": "21 2nd Street",
        "city": "New York",
        "state": "NY",
        "postalCode": "10021-3100"
    },
    "phoneNumbers": [
        {
            "type": "home",
            "number": "212 555-1234"
        },
        {
            "type": "office",
            "number": "646 555-4567"
        }
    ],
    "children": [],
    "spouse": null
}
@endjson

3、采用不同样式进行高亮显示

json 复制代码
@startjson
<style>
    .h1 {
        BackGroundColor green
        FontColor white
        FontStyle italic
    }
    .h2 {
        BackGroundColor red
        FontColor white
        FontStyle bold
    }
</style>
#highlight "lastName"
#highlight "address" / "city" <<h1>>
#highlight "phoneNumbers" / "0" / "number" <<h2>>
{
    "firstName": "John",
    "lastName": "Smith",
    "isAlive": true,
    "age": 28,
    "address": {
        "streetAddress": "21 2nd Street",
        "city": "New York",
        "state": "NY",
        "postalCode": "10021-3100"
    },
    "phoneNumbers": [
        {
            "type": "home",
            "number": "212 555-1234"
        },
        {
            "type": "office",
            "number": "646 555-4567"
        }
    ],
    "children": [],
    "spouse": null
}
@endjson

4、JSON基本元素

4.1、所有JSON基本元素的合成

json 复制代码
@startjson
{
    "null": null,
    "true": true,
    "false": false,
    "JSON_Number": [
        -1, 
        -1.1, 
        "<color:green>TBC"
    ],
    "JSON_String": "a\nb\rc\td <color:green>TBC...",
    "JSON_Object": {
        "{}": {},
        "k_int": 123,
        "k_str": "abc",
        "k_obj": {
            "k": "v"
        }
    },
    "JSON_Array" : [
        [],
        [true, false],
        [-1, 1],
        ["a", "b", "c"],
        ["mix", null, true, 1, {"k": "v"}]
    ]
}
@endjson

5、JSON数组或表

5.1、数组

json 复制代码
@startjson
{
    "Numeric": [1, 2, 3],
    "String ": ["v1a", "v2b", "v3c"],
    "Boolean": [true, false, true]
}
@endjson

5.3、数字数组

json 复制代码
@startjson
[1, 2, 3]
@endjson

5.4、字符串数组

json 复制代码
@startjson
["1a", "2b", "3c"]
@endjson

6、JSON数字

json 复制代码
@startjson
{
    "DecimalNumber": [-1, 0, 1],
    "DecimalNumber . Digits": [-1.1, 0.1, 1.1],
    "DecimalNumber ExponentPart": [1E5]
}
@endjson

7、JSON字符串

7.1、JSON Unicode

json 复制代码
@startjson
{
    "<color:blue><b>code": "<color:blue><b>value",
    "a\\u005Cb": "a\u005Cb",
    "\\uD83D\\uDE10": "\uD83D\uDE10",
    "": ""
}
@endjson

7.2、JSON双字符转义序列

json 复制代码
@startjson
{
"**legend**: character name": ["**two-character escape sequence**", "example (between"quotation mark character (U+0022)": ["\\\"", "a\"b"],
"reverse solidus character (U+005C)": ["\\\\", "a\\b"],
"solidus character (U+002F)": ["\\\/", "a\/b"],
"backspace character (U+0008)": ["\\b", "a\bb"],
"form feed character (U+000C)": ["\\f", "a\fb"],
"line feed character (U+000A)": ["\\n", "a\nb"],
"carriage return character (U+000D)": ["\\r", "a\rb"],
"character tabulation character (U+0009)": ["\\t", "a\tb"]
}
@endjson
json 复制代码
@startjson
[
"\\\\",
"\\n",
"\\r",
"\\t"
]
@endjson

8、Minimal JSON examples

json 复制代码
@startjson
"Hello world!"
@endjson
json 复制代码
@startjson
42
@endjson
json 复制代码
@startjson
true
@endjson

9、空表或列表

json 复制代码
@startjson
{
"empty_tab": [],
"empty_list": {}
}
@endjson

10、使用样式

10.1、无样式(默认)

json 复制代码
@startjson
#highlight "1" / "hr"
[
    {
        "name": "Mark McGwire",
        "hr": 65,
        "avg": 0.278
    },
    {
        "name": "Sammy Sosa",
        "hr": 63,
        "avg": 0.288
    }
]
@endjson

10.2、使用样式

json 复制代码
@startjson
<style>
jsonDiagram {
node {
BackGroundColor Khaki
LineColor lightblue
FontName Helvetica
FontColor red
FontSize 18
FontStyle bold
RoundCorner 0
LineThickness 2
LineStyle 10-5
separator {
LineThickness 0.5
LineColor black
LineStyle 1-5
}
}
arrow {
BackGroundColor lightblue
LineColor green
LineThickness 2
LineStyle 2-5
}
highlight {
BackGroundColor red
FontColor white
FontStyle italic
}
}
</style>
#highlight "1" / "hr"
[
{
"name": "Mark McGwire",
"hr": 65,
"avg": 0.278
},
{
"name": "Sammy Sosa",
"hr": 63,
"avg": 0.288
}
]
@endjson

11、在类图或对象图上显示JSON数据

11.1、简单示例

json 复制代码
@startuml
class Class
object Object
json JSON {
	"fruit":"Apple",
	"size":"Large",
	"color": ["Red", "Green"]
}
@enduml

11.2、复杂示例

json 复制代码
@startuml
json "<b>JSON basic element" as J {
"null": null,
"true": true,
"false": false,
"JSON_Number": [-1, -1.1, "<color:green>TBC"],
"JSON_String": "a\nb\rc\td <color:green>TBC...",
"JSON_Object": {
"{}": {},
"k_int": 123,
"k_str": "abc",
"k_obj": {"k": "v"}
},
"JSON_Array" : [
[],
[true, false],
[-1, 1],
["a", "b", "c"],
["mix", null, true, 1, {"k": "v"}]
]
}
@enduml
相关推荐
terry6004 天前
5G视频短信服务商选型全攻略:通道资源、架构能力与成本评估2026最新标准
大数据·人工智能·5g·json·asp.net·信息与通信·数据库架构
前网易架构师-高司机4 天前
带标注的辣椒病叶数据集,识别率95.9%,可识别三种病害和健康叶子,9916张图,支持yolo,coco json,voc xml,文末有模型训练代码
yolo·json·数据集·病害·叶病·病叶·辣椒
PixelBai4 天前
JSON扁平化使用教程:从入门到精通
json
渔舟唱晚,雁阵惊寒5 天前
CSDN博客内容丢失如何恢复?
json
衣乌安、5 天前
JSON-RPC协议
网络协议·rpc·json
PixelBai5 天前
JSON过滤使用教程:从入门到精通
javascript·chrome·json
PixelBai5 天前
JSON过滤实际应用场景案例
json
一生了无挂6 天前
Java处理JSON技巧教学(从基础到高阶实战全覆盖)
java·开发语言·json
PixelBai6 天前
JSON差异比较实际应用场景案例
json