JSON テキスト文字列に配列が格納されている場合は、OCCURS 句または OCCURS DEPENDING ON 句を含む COBOL データ項目に解析できます。
各 JSON 配列の要素の数は、関連付けられる表のデータ項目と同じである必要があります。JSON 配列の要素の方が少ない場合、対応する要素がない COBOL 表の要素が変更されることはありませんが、JSON 配列の値の方が表の項目よりも多い場合は、対応する項目がない値が無視されます。どちらの場合も、JSON-STATUS 設定がゼロ以外になります。
次の JSON テキスト文字列があるとします。
{"mem-file":{"rec":[{"SND":9,"pid":1289,"txt":"Hello"},{"SND":9,"pid":1478,"txt":"World"},
{"SND":9,"pid":8746,"txt":"!"}]}}
この文字列を次の COBOL プログラムに渡すと、どのように解析されるかがわかり、結果を照会して操作できるようになります。
Identification division.
Program-id. jparse1.
Data division.
Working-storage section.
01 mem-file.
03 rec occurs 3.
05 snd usage comp-1.
05 pid pic 9999 usage display.
05 txt pic x(12).
01 cnt pic 9 value zeroes.
Linkage section.
01 json-str pic x(128).
Procedure division using json-str.
display "Parsing....".
JSON PARSE json-str into mem-file with DETAIL
END-JSON.
perform 3 times
add 1 to cnt
if snd(cnt) equal to 9 then
display "PID is " pid(cnt)
display "Message text is '" txt(cnt) "'"
end-if
end-perform.
display "Status is: " JSON-STATUS.
display "Code is: " JSON-CODE.
goback.
End program jparse1.
この JSON PARSE 文を実行すると、グループ rec に JSON 配列から 3 つの要素が取り込まれます。これで、一致する COBOL データ項目および表の指標を使用して、任意の方法でテキストを操作できます。