JSON形式のファイルを読み書きするサンプル
これは InterSystems FAQ サイトの記事です。
ダイナミックオブジェクトの%FromJSONFileメソッドを利用すると簡単にJSON形式のファイルの内容をダイナミックオブジェクトにコピーすることができます。
以下の形式のJSONファイルをそのメソッドを使用して取り込む例は以下のようになります。
{
"ShipTo": {
"City": "Tokyo",
"Street": "Ginza",
"PostalCode": "160-0001"
},
"CustomerId": 1,
"Items": [
{
"ProductId": "MNT001",
"Amount": 2
},
{
"ProductId": "PC001",
"Amount": 2
}
]
}set tempobj = {}.%FromJSONFile("c:¥temp¥sample.json")
set customerid = tempobj.CustomerId
set iter = tempobj.Items.%GetIterator()
while iter.%GetNext(.key,.val) {
set line = {}.%FromJSON(val)
set productid = val.ProductId
set amount = val.Amount
}
zwrite反対にダイナミックオブジェクトをJSON形式のファイルに書く方法は以下の様になります。
(上記の例のtempobjをそのまま出力対象として使用しています)
set outputstream = ##class(%Stream.FileCharacter).%New()
set outputstream.TranslateTable = "UTF8"set outputfilename = "C:¥temp¥sample2.json"set status = outputstream.LinkToFile(outputfilename)
set status = tempobj.%ToJSON(outputstream)ディスカッション (0)0