PLSQL解析JSON返回空值,请求排查代码错误原因
问题分析与解决
你的代码返回空值的原因很直接:JSON字段名拼写错误。
你定义的JSON字符串里,目标字段的键是responseinfo,但调用l_json_obj.get_string()时传入的参数是requestinfo——把responseinfo里的字母r错写成了p,导致程序找不到对应字段,自然返回空值。
修正后的代码如下:
CREATE OR REPLACE PROCEDURE my_process IS myjson VARCHAR2 (32767):= '{"responseinfo":"<TRANSACTION><RESPONSE_CODE>100</RESPONSE_CODE><RESPONSE_MSG>Duplicate Request Found.</RESPONSE_MSG></TRANSACTION>"}'; l_json_obj JSON_OBJECT_T; requestinfo VARCHAR2 (32767); BEGIN BEGIN l_json_obj := JSON_OBJECT_T.parse (myjson); -- 修正字段名,与JSON中的键保持完全一致 requestinfo := l_json_obj.get_string ('responseinfo'); END; END; /
额外提醒:Oracle的JSON_OBJECT_T对字段名大小写敏感,后续处理JSON时,也要确保代码中使用的字段名和JSON原数据的大小写完全匹配。
内容的提问来源于stack exchange,提问作者Enamul Haque
相关产品推荐
相关产品推荐

