2.5.2.2.3 変換の例:
例2-19 VIEW記述ファイル
VIEW empname
#TYPE CNAME FBNAME COUNT FLAG SIZE NULL
char fname EMP_FNAME 1 - 25 -
char minit EMP_MINIT 1 - 1 -
char lname EMP LNAME 1 - 25 -
END
VIEW emp
struct empname ename 1 - - -
unsignedlong id EMP_ID 1 - - -
long ssn EMP_SSN 1 - - -
double salaryhist EMP_SAL 10 - - -
END
コンパイル後の対応するヘッダー・ファイル
例2-20 コンパイル
struct empname {
char fname[25];
char minit;
char lname[25];
};
struct emp {
struct empname ename;
unsigned long id;
long ssn;
double salaryhist[10];
}
例2-21 JSONコンテンツ
{
"ename":
{
"EMP_FNAME":"John",
"EMP_MINIT":"R",
"EMP_LNAME":"Smith"
},
"EMP_ID":1234,
"EMP_SSN":123456789,
"EMP_SAL":
[10000.0,
11000.0,
12000.0,
13000.0,
14000.0,
15000.0,
16000.0,
17000.0,
18000.0,
19000.0]
}
}
FBNAME
(ビュー・ファイルに指定された名前)がない場合、コンテンツはCNAME
値を使用して表現されます。フィールド名もまたネストされたビューのサブタイプ名であるため、フィールド名なしにネストを記述することはできません。1レベルの構造のみが表現されます。
次に例を示します:
例2-22 VIEW記述
VIEW empname
#TYPE CNAME FBNAME COUNT FLAG SIZE NULL
char fname - 1 - 25 -
char minit - 1 - 1 -
char lname - 1 - 25 -
END
コンパイル後の対応するヘッダー・ファイル
例2-23 コンパイル
struct empname {
char fname[25];
char minit;
char lname[25];
};
例2-24 JSONコンテンツの例
{
"fname":"John",
"minit":"R",
"lname":"Smith"
}
例2-25 フィールド表
#name rel-number type flags comment
BIKES 1 fml32 -
COLOR 2 string -
CURSERIALNO 3 string -
INSTOCK 4 string -
NAME 5 string -
ORDERDATE 6 string -
PRICE 7 float -
SERIALNO 8 string -
SIZE 9 long -
SKU 10 string -
TYPE 11 string -
例2-26 JSONコンテンツ
"BIKES":
[
{"COLOR":"BLUE",
"CURSERIALNO":"AZ123",
"INSTOCK":"Y",
"NAME":"CUTTER",
"ORDERDATE":"11/03/2012",
"PRICE":1234.55,
"SERIALNO":"123456",
"SIZE":52,
"SKU":"CU521234",
"TYPE":"ROAD"},
{"COLOR":"RED",
"CURSERIALNO":"BZ123",
"INSTOCK":"Y",
"NAME":"ROCKGLIDER",
"ORDERDATE":"11/06/2012",
"PRICE":1455.55,
"SERIALNO":"123457",
"SIZE":16,
"SKU":"RG161234",
"TYPE":"MTB"},
]
}
}
レコードの例。
例2-27 COBOLコピーブック
01 myRecord.
05 name occurs 1 times PIC X(10).
05 num occurs 1 times PIC S9(9) COMP-5.
05 subgroup occurs 1 times.
10 long1 PIC S9(9) COMP-5.
10 string1 PIC X(19).
例2-28 結果
{
"name": "aaa",
"num": 1000,
"subgroup": {
"long1": 3000,
"string1": "wwww"
}
}
親トピック: JSONデータ・マッピング