記事
· 9 hr 前 2m read

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)1
続けるにはログインするか新規登録を行ってください