Use literals in jsonpath examples (#15775)

It's very difficult to figure out e.g. the correct quotes to use from
regular text that is subject to being converted for typographers quotes.
Use code literals instead to ensure that nothing is modified, and to
distinguish literals from accompanying text.

Signed-off-by: Zane Bitter <zbitter@redhat.com>
This commit is contained in:
Zane Bitter
2019-08-11 20:53:10 -04:00
committed by Kubernetes Prow Robot
parent 5c41bb0482
commit 8344dda2f6
3 changed files with 38 additions and 38 deletions
+13 -13
View File
@@ -65,18 +65,18 @@ Given the JSON input:
} }
``` ```
Function | Description | Example | Result Function | Description | Example | Result
------------------|---------------------------|---------------------------------------------------------------|------------------ --------------------|---------------------------|-----------------------------------------------------------------|------------------
text | the plain text | kind is {.kind} | kind is List `text` | the plain text | `kind is {.kind}` | `kind is List`
@ | the current object | {@} | the same as input `@` | the current object | `{@}` | the same as input
. or [] | child operator | {.kind} or {['kind']} | List `.` or `[]` | child operator | `{.kind}` or `{['kind']}` | `List`
.. | recursive descent | {..name} | 127.0.0.1 127.0.0.2 myself e2e `..` | recursive descent | `{..name}` | `127.0.0.1 127.0.0.2 myself e2e`
\* | wildcard. Get all objects | {.items[*].metadata.name} | [127.0.0.1 127.0.0.2] `*` | wildcard. Get all objects | `{.items[*].metadata.name}` | `[127.0.0.1 127.0.0.2]`
[start:end :step] | subscript operator | {.users[0].name} | myself `[start:end :step]` | subscript operator | `{.users[0].name}` | `myself`
[,] | union operator | {.items[*]['metadata.name', 'status.capacity']} | 127.0.0.1 127.0.0.2 map[cpu:4] map[cpu:8] `[,]` | union operator | `{.items[*]['metadata.name', 'status.capacity']}` | `127.0.0.1 127.0.0.2 map[cpu:4] map[cpu:8]`
?() | filter | {.users[?(@.name=="e2e")].user.password} | secret `?()` | filter | `{.users[?(@.name=="e2e")].user.password}` | `secret`
range, end | iterate list | {range .items[*]}[{.metadata.name}, {.status.capacity}] {end} | [127.0.0.1, map[cpu:4]] [127.0.0.2, map[cpu:8]] `range`, `end` | iterate list | `{range .items[*]}[{.metadata.name}, {.status.capacity}] {end}` | `[127.0.0.1, map[cpu:4]] [127.0.0.2, map[cpu:8]]`
'' | quote interpreted string | {range .items[*]}{.metadata.name}{'\t'}{end} | 127.0.0.1 127.0.0.2 `''` | quote interpreted string | `{range .items[*]}{.metadata.name}{'\t'}{end}` | `127.0.0.1 127.0.0.2`
Examples using `kubectl` and JSONPath expressions: Examples using `kubectl` and JSONPath expressions:
@@ -95,4 +95,4 @@ C:\> kubectl get pods -o=jsonpath="{range .items[*]}{.metadata.name}{'\t'}{.stat
C:\> kubectl get pods -o=jsonpath="{range .items[*]}{.metadata.name}{\"\t\"}{.status.startTime}{\"\n\"}{end}" C:\> kubectl get pods -o=jsonpath="{range .items[*]}{.metadata.name}{\"\t\"}{.status.startTime}{\"\n\"}{end}"
``` ```
{{% /capture %}} {{% /capture %}}
+13 -13
View File
@@ -67,18 +67,18 @@ En plus de la syntaxe de modèle JSONPath originale, les fonctions et syntaxes s
} }
``` ```
Fonction | Description | Exemple | Résultat Fonction | Description | Exemple | Résultat
------------------|----------------------------|---------------------------------------------------------------|------------------ --------------------|----------------------------|-----------------------------------------------------------------|------------------
text | le texte en clair | le type est {.kind} | le type est List `text` | le texte en clair | `le type est {.kind}` | `le type est List`
@ | l'objet courant | {@} | identique à l'entrée `@` | l'objet courant | `{@}` | identique à l'entrée
. or [] | opérateur fils | {.kind} ou {['kind']} | List `.` ou `[]` | opérateur fils | `{.kind}` ou `{['kind']}` | `List`
.. | descente récursive | {..name} | 127.0.0.1 127.0.0.2 myself e2e `..` | descente récursive | `{..name}` | `127.0.0.1 127.0.0.2 myself e2e`
\* | joker. Tous les objets | {.items[*].metadata.name} | [127.0.0.1 127.0.0.2] `*` | joker. Tous les objets | `{.items[*].metadata.name}` | `[127.0.0.1 127.0.0.2]`
[start:end :step] | opérateur d'indice | {.users[0].name} | myself `[start:end :step]` | opérateur d'indice | `{.users[0].name}` | `myself`
[,] | opérateur d'union | {.items[*]['metadata.name', 'status.capacity']} | 127.0.0.1 127.0.0.2 map[cpu:4] map[cpu:8] `[,]` | opérateur d'union | `{.items[*]['metadata.name', 'status.capacity']}` | `127.0.0.1 127.0.0.2 map[cpu:4] map[cpu:8]`
?() | filtre | {.users[?(@.name=="e2e")].user.password} | secret `?()` | filtre | `{.users[?(@.name=="e2e")].user.password}` | `secret`
range, end | itération de liste | {range .items[*]}[{.metadata.name}, {.status.capacity}] {end} | [127.0.0.1, map[cpu:4]] [127.0.0.2, map[cpu:8]] `range`, `end` | itération de liste | `{range .items[*]}[{.metadata.name}, {.status.capacity}] {end}` | `[127.0.0.1, map[cpu:4]] [127.0.0.2, map[cpu:8]]`
'' | protège chaîne interprétée | {range .items[*]}{.metadata.name}{'\t'}{end} | 127.0.0.1 127.0.0.2 `''` | protège chaîne interprétée | `{range .items[*]}{.metadata.name}{'\t'}{end}` | `127.0.0.1 127.0.0.2`
Exemples utilisant `kubectl` et des expressions JSONPath : Exemples utilisant `kubectl` et des expressions JSONPath :
@@ -97,4 +97,4 @@ C:\> kubectl get pods -o=jsonpath="{range .items[*]}{.metadata.name}{'\t'}{.stat
C:\> kubectl get pods -o=jsonpath="{range .items[*]}{.metadata.name}{\"\t\"}{.status.startTime}{\"\n\"}{end}" C:\> kubectl get pods -o=jsonpath="{range .items[*]}{.metadata.name}{\"\t\"}{.status.startTime}{\"\n\"}{end}"
``` ```
{{% /capture %}} {{% /capture %}}
+12 -12
View File
@@ -49,15 +49,15 @@ JSONPath 模板由 {} 包起来的 JSONPath 表达式组成。
] ]
} }
``` ```
| 函数 | 描述 | 示例 | 结果 | | 函数 | 描述 | 示例 | 结果 |
| ----------------- | ---------- | ---------------------------------------- | ---------------------------------------- | | ------------------- | ---------- | ------------------------------------------ | ------------------------------------------ |
| text | 纯文本 | kind is {.kind} | kind is List | | `text` | 纯文本 | `kind is {.kind}` | `kind is List` |
| @ | 当前对象 | {@} | 与输入相同 | | `@` | 当前对象 | `{@}` | 与输入相同 |
| . or [] | 子运算符 | {.kind} 或者 {['kind']} | List | | `.` 或者 `[]` | 子运算符 | `{.kind}` 或者 `{['kind']}` | `List` |
| .. | 递归下降 | {..name} | 127.0.0.1 127.0.0.2 myself e2e | | `..` | 递归下降 | `{..name}` | `127.0.0.1 127.0.0.2 myself e2e` |
| * | 通配符,获取所有对象 | {.items[*].metadata.name} | [127.0.0.1 127.0.0.2] | | `*` | 通配符,获取所有对象 | `{.items[*].metadata.name}` | `[127.0.0.1 127.0.0.2]` |
| [start:end :step] | 下标运算符 | {.users[0].name} | myself | | `[start:end :step]` | 下标运算符 | `{.users[0].name}` | `myself` |
| [,] | 并集运算符 | {.items[*]['metadata.name', 'status.capacity']} | 127.0.0.1 127.0.0.2 map[cpu:4] map[cpu:8] | | `[,]` | 并集运算符 | `{.items[*]['metadata.name', 'status.capacity']}` | `127.0.0.1 127.0.0.2 map[cpu:4] map[cpu:8]` |
| ?() | 过滤 | {.users[?(@.name=="e2e")].user.password} | secret | | `?()` | 过滤 | `{.users[?(@.name=="e2e")].user.password}` | `secret` |
| range, end | 迭代列表 | {range .items[*]}[{.metadata.name}, {.status.capacity}] {end} | [127.0.0.1, map[cpu:4]] [127.0.0.2, map[cpu:8]] | | `range`, `end` | 迭代列表 | `{range .items[*]}[{.metadata.name}, {.status.capacity}] {end}` | `[127.0.0.1, map[cpu:4]] [127.0.0.2, map[cpu:8]]` |
| "" | 引用解释执行字符串 | {range .items[*]}{.metadata.name}{"\t"}{end} | 127.0.0.1 127.0.0.2 | | `''` | 引用解释执行字符串 | `{range .items[*]}{.metadata.name}{'\t'}{end}` | `127.0.0.1 127.0.0.2` |