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 データ項目および表の指標を使用して、任意の方法でテキストを操作できます。