私はちょうどPL/JSONを使用し始めていると私は、例えば、最初の名前などの非配列データを、解析することができる午前:配列データを解析するPL/JSONを使用する方法
json_ext.get_string (json (l_list.get (i)), 'firstName');
しかし、Iアドレスなどの配列データを解析する方法を理解できません。たとえば、
street1 := json_ext.get_string (json (l_list.get (i)), 'addresses.street1');
は動作しません。
street1 := json_ext.get_string (json (l_list.get (i)), 'addresses.street1');
を例として使用して:
どのように私は正しく使用して、配列データを解析するのでしょうか?ここで
は、JSONの例である:ここで
[
{
"firstName": "Edward",
"middleName": "Wolfgang",
"lastName": "Munster",
"addresses": [
{
"city": "",
"addressType": "home",
"state": "CA",
"street1": "1313 Mockingbird Lane",
"street2": ""
},
{
"city": "",
"addressType": "business",
"state": "CA",
"street1": "123 Morgan Rd.",
"street2": ""
}
],
}
は、私が使用していたコードの例を次に示します。
BEGIN
SELECT json
INTO l_json
FROM json_table
WHERE id = 1;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
l_json := NULL;
END;
l_list := json_list (l_json);
FOR i IN 1 .. l_list.COUNT
LOOP
--These parse correctly
firstname := json_ext.get_string (json (l_list.get (i)), 'firstName');
middlename := json_ext.get_string (json (l_list.get (i)), 'middleName');
lastname := json_ext.get_string (json (l_list.get (i)), 'lastName');
--These do not parse at all
addresstype := json_ext.get_string (json (l_list.get (i)), 'addresses.addressType');
street1 := json_ext.get_string (json (l_list.get (i)), 'addresses.street1');
street2 := json_ext.get_string (json (l_list.get (i)), 'addresses.street2');
city := json_ext.get_string (json (l_list.get (i)), 'addresses.city');
state := json_ext.get_string (json (l_list.get (i)), 'addresses.state');
すでに外部配列を解析しています。内側の配列を解析するのが難しいですか?それは同じ行動です。 –
@JamesSumners内部配列のデータは返されません。 – user6146386
@JamesSumners私の以前の答えに基づいて、私が間違って何をしているかについての洞察はありますか?json_ext.get_string(json(l_list.get(i))はネストされた内部配列に対しては機能しません。 – user6146386