Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 460373c

Browse files
mklzlxiaozhuoyang
authored andcommittedJan 23, 2025
[doc] Merge json_parse_* docs into json_parse zh_doc (apache#1846)
Merge "json_parse, jsonb_parse json_parse_error_to_invalid, jsonb_parse_error_to_invalid json_parse_error_to_null, jsonb_parse_error_to_null json_parse_error_to_value, jsonb_parse_error_to_value json_parse_notnull, jsonb_parse_notnull" into "json_parse" zh_doc ## Versions - [x] dev - [x] 3.0 - [x] 2.1 - [ ] 2.0 ## Languages - [x] Chinese - [ ] English ## Docs Checklist - [ ] Checked by AI - [ ] Test Cases Built
1 parent 765ed92 commit 460373c

File tree

3 files changed

+312
-90
lines changed
  • i18n/zh-CN/docusaurus-plugin-content-docs
    • current/sql-manual/sql-functions/scalar-functions/json-functions
    • version-2.1/sql-manual/sql-functions/scalar-functions/json-functions
    • version-3.0/sql-manual/sql-functions/scalar-functions/json-functions

3 files changed

+312
-90
lines changed
 

‎i18n/zh-CN/docusaurus-plugin-content-docs/current/sql-manual/sql-functions/scalar-functions/json-functions/json-parse.md

+104-30
Original file line numberDiff line numberDiff line change
@@ -24,60 +24,134 @@ specific language governing permissions and limitations
2424
under the License.
2525
-->
2626

27-
## json_parse
2827
## 描述
28+
将原始 JSON 字符串解析成 JSON 二进制格式。为了满足不同的异常数据处理需求,提供不同的 JSON_PARSE 系列函数,具体如下:
29+
* JSON_PARSE 解析 JSON 字符串,当输入的字符串不是合法的 JSON 字符串时,报错。
30+
* JSON_PARSE_ERROR_TO_INVALID 解析 JSON 字符串,当输入的字符串不是合法的 JSON 字符串时,返回 NULL。
31+
* JSON_PARSE_ERROR_TO_NULL 解析 JSON 字符串,当输入的字符串不是合法的 JSON 字符串时,返回 NULL。
32+
* JSON_PARSE_ERROR_TO_VALUE 解析 JSON 字符串,当输入的字符串不是合法的 JSON 字符串时,返回参数 default_json_str 指定的默认值。
33+
* JSON_PARSE_NOTNULL 解析 JSON 字符串,当输入的字符串不是合法的 JSON 字符串时,返回 NULL。
34+
35+
## 别名
36+
* JSONB_PARSE 同 `JSON_PARSE`
37+
* JSONB_PARSE_ERROR_TO_INVALID 同 `JSON_PARSE_ERROR_TO_INVALID`
38+
* JSONB_PARSE_ERROR_TO_NULL 同 `JSON_PARSE_ERROR_TO_NULL`
39+
* JSONB_PARSE_ERROR_TO_VALUE 同 `JSON_PARSE_ERROR_TO_VALUE`
40+
* JSONB_PARSE_NOTNULL 同 `JSON_PARSE_NOTNULL`
41+
2942
## 语法
3043

3144
```sql
32-
JSON json_parse(VARCHAR json_str)
33-
JSON json_parse_error_to_null(VARCHAR json_str)
34-
JSON json_parse_error_to_value(VARCHAR json_str, VARCHAR default_json_str)
45+
JSON_PARSE (<json_str>)
46+
```
47+
```sql
48+
JSON_PARSE_ERROR_TO_INVALID (<json_str>)
49+
```
50+
```sql
51+
JSON_PARSE_ERROR_TO_NULL (<json_str>)
52+
```
53+
54+
```sql
55+
JSON_PARSE_ERROR_TO_VALUE (<json_str>, <default_json_str>)
56+
```
57+
```sql
58+
JSONB_PARSE_NOTNULL (<json_str>)
3559
```
3660

37-
将原始JSON字符串解析成JSON二进制格式。为了满足不同的异常数据处理需求,提供不同的json_parse系列函数,具体行为如下:
38-
- json_str为NULL时,都返回NULL
39-
- json_str为非法JSON字符串时
40-
- json_parse报错
41-
- json_parse_error_to_null返回NULL,
42-
- json_parse_error_to_value返回参数default_json_str指定的默认值
61+
## 参数
62+
| 参数 | 描述 |
63+
|--------------|-----------------------------|
64+
| `<json_str>` | 要提取的 JSON 类型的参数或者字段 |
65+
| `<default_json_str>` | 当输入的字符串不是合法的 JSON 字符串时,返回参数 default_json_str 指定的默认值。 |
66+
67+
## 返回值
68+
* json_str 为 NULL 时,都返回 NULL
69+
* json_str 为非法 JSON 字符串时
70+
- JSON_PARSE 报错
71+
- JSON_PARSE_ERROR_TO_INVALID 返回 NULL
72+
- JSON_PARSE_ERROR_TO_NULL 返回 NULL
73+
- JSON_PARSE_ERROR_TO_VALUE 返回参数 default_json_str 指定的默认值
74+
- JSON_PARSE_NOTNULL 返回 NULL
75+
4376

44-
## 举例
4577

46-
1. 正常JSON字符串解析
78+
## 示例
4779

80+
1. 正常 JSON 字符串解析
81+
```sql
82+
SELECT json_parse('{"k1":"v31","k2":300}');
4883
```
49-
mysql> SELECT json_parse('{"k1":"v31","k2":300}');
84+
```text
5085
+--------------------------------------+
5186
| json_parse('{"k1":"v31","k2":300}') |
5287
+--------------------------------------+
5388
| {"k1":"v31","k2":300} |
5489
+--------------------------------------+
55-
1 row in set (0.01 sec)
5690
```
57-
58-
2. 非法JSON字符串解析
59-
91+
```sql
92+
SELECT json_parse_error_to_invalid('{"k1":"v31","k2":300}');
93+
```
94+
```text
95+
+-------------------------------------------------------+
96+
| jsonb_parse_error_to_invalid('{"k1":"v31","k2":300}') |
97+
+-------------------------------------------------------+
98+
| {"k1":"v31","k2":300} |
99+
+-------------------------------------------------------+
100+
```
101+
```sql
102+
SELECT json_parse_notnull('{"a":"b"}');
60103
```
61-
mysql> SELECT json_parse('invalid json');
104+
```text
105+
+----------------------------------+
106+
| jsonb_parse_notnull('{"a":"b"}') |
107+
+----------------------------------+
108+
| {"a":"b"} |
109+
+----------------------------------+
110+
```
111+
```sql
112+
SELECT json_parse_error_to_value('{"k1":"v31","k2":300}','{}');
113+
```
114+
```text
115+
+-----------------------------------------------------------+
116+
| jsonb_parse_error_to_value('{"k1":"v31","k2":300}', '{}') |
117+
+-----------------------------------------------------------+
118+
| {"k1":"v31","k2":300} |
119+
+-----------------------------------------------------------+
120+
```
121+
2. 非法 JSON 字符串解析
122+
```sql
123+
SELECT json_parse('invalid json');
124+
```
125+
```text
62126
ERROR 1105 (HY000): errCode = 2, detailMessage = json parse error: Invalid document: document must be an object or an array for value: invalid json
63-
64-
mysql> SELECT json_parse_error_to_null('invalid json');
127+
```
128+
```sql
129+
SELECT json_parse_error_to_invalid('invalid json');
130+
```
131+
```text
132+
+----------------------------------------------+
133+
| jsonb_parse_error_to_invalid('invalid json') |
134+
+----------------------------------------------+
135+
| NULL |
136+
+----------------------------------------------+
137+
```
138+
```sql
139+
SELECT json_parse_notnull('invalid json');
140+
```
141+
```text
65142
+-------------------------------------------+
66-
| json_parse_error_to_null('invalid json') |
143+
| jsonb_parse_error_to_null('invalid json') |
67144
+-------------------------------------------+
68145
| NULL |
69146
+-------------------------------------------+
70-
1 row in set (0.01 sec)
71-
72-
mysql> SELECT json_parse_error_to_value('invalid json', '{}');
147+
```
148+
```sql
149+
SELECT json_parse_error_to_value('invalid json', '{}');
150+
```
151+
```text
73152
+--------------------------------------------------+
74153
| json_parse_error_to_value('invalid json', '{}') |
75154
+--------------------------------------------------+
76155
| {} |
77156
+--------------------------------------------------+
78-
1 row in set (0.00 sec)
79-
```
80-
81-
82-
### keywords
83-
JSONB, JSON, json_parse, json_parse_error_to_null, json_parse_error_to_value
157+
```

‎i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/sql-manual/sql-functions/scalar-functions/json-functions/json-parse.md

+104-30
Original file line numberDiff line numberDiff line change
@@ -24,60 +24,134 @@ specific language governing permissions and limitations
2424
under the License.
2525
-->
2626

27-
## json_parse
2827
## 描述
28+
将原始 JSON 字符串解析成 JSON 二进制格式。为了满足不同的异常数据处理需求,提供不同的 JSON_PARSE 系列函数,具体如下:
29+
* JSON_PARSE 解析 JSON 字符串,当输入的字符串不是合法的 JSON 字符串时,报错。
30+
* JSON_PARSE_ERROR_TO_INVALID 解析 JSON 字符串,当输入的字符串不是合法的 JSON 字符串时,返回 NULL。
31+
* JSON_PARSE_ERROR_TO_NULL 解析 JSON 字符串,当输入的字符串不是合法的 JSON 字符串时,返回 NULL。
32+
* JSON_PARSE_ERROR_TO_VALUE 解析 JSON 字符串,当输入的字符串不是合法的 JSON 字符串时,返回参数 default_json_str 指定的默认值。
33+
* JSON_PARSE_NOTNULL 解析 JSON 字符串,当输入的字符串不是合法的 JSON 字符串时,返回 NULL。
34+
35+
## 别名
36+
* JSONB_PARSE 同 `JSON_PARSE`
37+
* JSONB_PARSE_ERROR_TO_INVALID 同 `JSON_PARSE_ERROR_TO_INVALID`
38+
* JSONB_PARSE_ERROR_TO_NULL 同 `JSON_PARSE_ERROR_TO_NULL`
39+
* JSONB_PARSE_ERROR_TO_VALUE 同 `JSON_PARSE_ERROR_TO_VALUE`
40+
* JSONB_PARSE_NOTNULL 同 `JSON_PARSE_NOTNULL`
41+
2942
## 语法
3043

3144
```sql
32-
JSON json_parse(VARCHAR json_str)
33-
JSON json_parse_error_to_null(VARCHAR json_str)
34-
JSON json_parse_error_to_value(VARCHAR json_str, VARCHAR default_json_str)
45+
JSON_PARSE (<json_str>)
46+
```
47+
```sql
48+
JSON_PARSE_ERROR_TO_INVALID (<json_str>)
49+
```
50+
```sql
51+
JSON_PARSE_ERROR_TO_NULL (<json_str>)
52+
```
53+
54+
```sql
55+
JSON_PARSE_ERROR_TO_VALUE (<json_str>, <default_json_str>)
56+
```
57+
```sql
58+
JSONB_PARSE_NOTNULL (<json_str>)
3559
```
3660

37-
将原始JSON字符串解析成JSON二进制格式。为了满足不同的异常数据处理需求,提供不同的json_parse系列函数,具体行为如下:
38-
- json_str为NULL时,都返回NULL
39-
- json_str为非法JSON字符串时
40-
- json_parse报错
41-
- json_parse_error_to_null返回NULL,
42-
- json_parse_error_to_value返回参数default_json_str指定的默认值
61+
## 参数
62+
| 参数 | 描述 |
63+
|--------------|-----------------------------|
64+
| `<json_str>` | 要提取的 JSON 类型的参数或者字段 |
65+
| `<default_json_str>` | 当输入的字符串不是合法的 JSON 字符串时,返回参数 default_json_str 指定的默认值。 |
66+
67+
## 返回值
68+
* json_str 为 NULL 时,都返回 NULL
69+
* json_str 为非法 JSON 字符串时
70+
- JSON_PARSE 报错
71+
- JSON_PARSE_ERROR_TO_INVALID 返回 NULL
72+
- JSON_PARSE_ERROR_TO_NULL 返回 NULL
73+
- JSON_PARSE_ERROR_TO_VALUE 返回参数 default_json_str 指定的默认值
74+
- JSON_PARSE_NOTNULL 返回 NULL
75+
4376

44-
## 举例
4577

46-
1. 正常JSON字符串解析
78+
## 示例
4779

80+
1. 正常 JSON 字符串解析
81+
```sql
82+
SELECT json_parse('{"k1":"v31","k2":300}');
4883
```
49-
mysql> SELECT json_parse('{"k1":"v31","k2":300}');
84+
```text
5085
+--------------------------------------+
5186
| json_parse('{"k1":"v31","k2":300}') |
5287
+--------------------------------------+
5388
| {"k1":"v31","k2":300} |
5489
+--------------------------------------+
55-
1 row in set (0.01 sec)
5690
```
57-
58-
2. 非法JSON字符串解析
59-
91+
```sql
92+
SELECT json_parse_error_to_invalid('{"k1":"v31","k2":300}');
93+
```
94+
```text
95+
+-------------------------------------------------------+
96+
| jsonb_parse_error_to_invalid('{"k1":"v31","k2":300}') |
97+
+-------------------------------------------------------+
98+
| {"k1":"v31","k2":300} |
99+
+-------------------------------------------------------+
100+
```
101+
```sql
102+
SELECT json_parse_notnull('{"a":"b"}');
60103
```
61-
mysql> SELECT json_parse('invalid json');
104+
```text
105+
+----------------------------------+
106+
| jsonb_parse_notnull('{"a":"b"}') |
107+
+----------------------------------+
108+
| {"a":"b"} |
109+
+----------------------------------+
110+
```
111+
```sql
112+
SELECT json_parse_error_to_value('{"k1":"v31","k2":300}','{}');
113+
```
114+
```text
115+
+-----------------------------------------------------------+
116+
| jsonb_parse_error_to_value('{"k1":"v31","k2":300}', '{}') |
117+
+-----------------------------------------------------------+
118+
| {"k1":"v31","k2":300} |
119+
+-----------------------------------------------------------+
120+
```
121+
2. 非法 JSON 字符串解析
122+
```sql
123+
SELECT json_parse('invalid json');
124+
```
125+
```text
62126
ERROR 1105 (HY000): errCode = 2, detailMessage = json parse error: Invalid document: document must be an object or an array for value: invalid json
63-
64-
mysql> SELECT json_parse_error_to_null('invalid json');
127+
```
128+
```sql
129+
SELECT json_parse_error_to_invalid('invalid json');
130+
```
131+
```text
132+
+----------------------------------------------+
133+
| jsonb_parse_error_to_invalid('invalid json') |
134+
+----------------------------------------------+
135+
| NULL |
136+
+----------------------------------------------+
137+
```
138+
```sql
139+
SELECT json_parse_notnull('invalid json');
140+
```
141+
```text
65142
+-------------------------------------------+
66-
| json_parse_error_to_null('invalid json') |
143+
| jsonb_parse_error_to_null('invalid json') |
67144
+-------------------------------------------+
68145
| NULL |
69146
+-------------------------------------------+
70-
1 row in set (0.01 sec)
71-
72-
mysql> SELECT json_parse_error_to_value('invalid json', '{}');
147+
```
148+
```sql
149+
SELECT json_parse_error_to_value('invalid json', '{}');
150+
```
151+
```text
73152
+--------------------------------------------------+
74153
| json_parse_error_to_value('invalid json', '{}') |
75154
+--------------------------------------------------+
76155
| {} |
77156
+--------------------------------------------------+
78-
1 row in set (0.00 sec)
79-
```
80-
81-
82-
### keywords
83-
JSONB, JSON, json_parse, json_parse_error_to_null, json_parse_error_to_value
157+
```
There was a problem loading the remainder of the diff.

0 commit comments

Comments
 (0)
Please sign in to comment.