需要在 pl/sql 中解析 JSON 请求
Need to parse a JSON request in pl/sql
我最近安装了 PL/JSON 软件包,使用它需要一些帮助。我收到一个请求 (POST),我需要解析它以与我的数据进行比较。请求的格式如下:
{
"value1": "ABC123",
"list1": [
"1",
"2"
]
}
请求验证指定的 value1
对于指定的 list1
值至少有一个有效的 value2
。
我们有一个 table,其列匹配我们数据库中的 value1, value2, and list1
个值。我正在使用带有游标的存储过程来获取这些值,如下所示:
cursor valid_list1_values is
select list1_values
from myTable
where value1 = ;
我卡在 where 子句上了。此过程用于传递两个变量而不是 JSON,我使用其中一个变量来缩小游标结果集。
如何解析 JSON 对象和嵌套的 JSON 列表以获得 Value1
来限制我的光标?
首先,您需要将JSON 字符串解析为JSON 对象。然后你可以使用 JSON 对象方法来访问数据:
json in_data := json('{"value1":"ABC123", "list1":[1,2]}');
varchar2 json_value1 := in_data.get_string('value1');
此时您可以使用光标中的值:
cursor valid_list1_values is
select list1_values
from myTable
where value1 = json_value1;
我最近安装了 PL/JSON 软件包,使用它需要一些帮助。我收到一个请求 (POST),我需要解析它以与我的数据进行比较。请求的格式如下:
{
"value1": "ABC123",
"list1": [
"1",
"2"
]
}
请求验证指定的 value1
对于指定的 list1
值至少有一个有效的 value2
。
我们有一个 table,其列匹配我们数据库中的 value1, value2, and list1
个值。我正在使用带有游标的存储过程来获取这些值,如下所示:
cursor valid_list1_values is
select list1_values
from myTable
where value1 = ;
我卡在 where 子句上了。此过程用于传递两个变量而不是 JSON,我使用其中一个变量来缩小游标结果集。
如何解析 JSON 对象和嵌套的 JSON 列表以获得 Value1
来限制我的光标?
首先,您需要将JSON 字符串解析为JSON 对象。然后你可以使用 JSON 对象方法来访问数据:
json in_data := json('{"value1":"ABC123", "list1":[1,2]}');
varchar2 json_value1 := in_data.get_string('value1');
此时您可以使用光标中的值:
cursor valid_list1_values is
select list1_values
from myTable
where value1 = json_value1;