我有一个程序,如下所示。它接受 JSON 对象作为输入。该对象类型中的元素之一是带有 key 的数组samplekey。在某些情况下,JSON 对象p_object不包含samplekey数组。在这些情况下,过程会遇到运行时异常。在 PL/SQL 中处理这种情况的最佳方法是什么?我是否应该首先检查samplekey对象中是否存在带有键的元素p_object?如果是,我该怎么做?有没有更好的方法来处理这种情况?
procedure(p_object in json_object_t)
as
lja json_array_t;
begin
lja := p_object.get_array('samplekey');
end;
Run Code Online (Sandbox Code Playgroud)
小智 7
您可以使用HAS的功能JSON_OBJECT_T。如果 JSON 具有您搜索的密钥,则将返回TRUEor 。FALSE下面是如何使用它的示例。
DECLARE
PROCEDURE test_json (p_object IN json_object_t)
IS
BEGIN
IF p_object.has ('samplekey')
THEN
DBMS_OUTPUT.put_line ('JSON has the key "samplekey"');
ELSE
DBMS_OUTPUT.put_line ('JSON does NOT have the key "samplekey"');
END IF;
END;
BEGIN
test_json (json_object_t ('{}'));
test_json (json_object_t ('{"samplekey":123}'));
test_json (json_object_t ('{"otherkey":"test"}'));
END;
/
--Output
JSON does NOT have the key "samplekey"
JSON has the key "samplekey"
JSON does NOT have the key "samplekey"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4578 次 |
| 最近记录: |