Tukubaiオンラインコマンドマニュアル - rjson(1)

rjson(1)

【名前】

rjson : JSON 形式のファイルをフィールド形式に変換する

【書式】

Usage   : rjson [-p<c>][-m<c>][-s<c>][-n<string>] [<json-file>]
Version : Mon Sep 12 12:13:51 JST 2022
Edition : 1

【説明】

JSON 形式(RFC8259) のファイル<json-file>をフィールド形式にします。オブジェクト名とリスト位置がネストの順に出力され、最後に値が出力されます。

【オプション】

-p: オブジェクト名やリスト位置の区切りを変更します。デフォルトは半角空白です。-m: オブジェクト名に含まれる半角空白を変更します。デフォルトは"_"です。-s: 値に含まれる半角空白を変更します。デフォルトは"_"です。-n: ヌル値(空文字列)を変更します。デフォルトは"_"です。

【例1】

$ cat jsondata
{
  "data1" : "null",
  "data2" : "",
  "data3" : null,
  "data4" : true,
  "data5" : false,
  "data6" : "6.62607e-34"
}
$ rjson jsondata
data1 null
data2 _
data3 _
data4 true
data5 false
data6 6.62607e-34

【例2】

$ cat jsondata
[
{ "name"   : "Alice Brown",
  "sku"    : "54321",
  "price"  : 199.95,
  "shipTo" : { "name" : "Bob Brown",
               "address" : "456 Oak Lane",
               "city" : "Pretendville",
               "state" : "",
               "zip"   : "98999" },
  "billTo" : { "name" : "Alice Brown",
               "address" : "456 Oak Lane",
               "city" : "Pretendville",
               "state" : "HI",
               "zip"   : "98999" }
},
{ "name"   : "Donald Tramp",
  "sku"    : "24680",
  "price"  : 153.32,
  "shipTo" : { "name" : "Kim Jonil",
               "address" : "123 Hidroask",
               "city" : "Pyonyan",
               "state" : "NK",
               "zip"   : "10012" },
  "billTo" : { "name" : "Donald Tramp",
               "address" : "456 Oak Lane",
               "city" : "Pretendville",
               "state" : "HI",
               "zip"   : "98999" }
}
]
$ rjson < jsondata
1 name Alice_Brown
1 sku 54321
1 price 199.95
1 shipTo name Bob_Brown
1 shipTo address 456_Oak_Lane
1 shipTo city Pretendville
1 shipTo state _
1 shipTo zip 98999
1 billTo name Alice_Brown
1 billTo address 456_Oak_Lane
1 billTo city Pretendville
1 billTo state HI
1 billTo zip 98999
2 name Donald_Tramp
2 sku 24680
2 price 153.32
2 shipTo name Kim_Jonil
2 shipTo address 123_Hidroask
2 shipTo city Pyonyan
2 shipTo state NK
2 shipTo zip 10012
2 billTo name Donald_Tramp
2 billTo address 456_Oak_Lane
2 billTo city Pretendville
2 billTo state HI
2 billTo zip 98999
$ rjson -p. < jsondata
1.name Alice_Brown
1.sku 54321
1.price 199.95
1.shipTo.name Bob_Brown
1.shipTo.address 456_Oak_Lane
1.shipTo.city Pretendville
1.shipTo.state _
1.shipTo.zip 98999
1.billTo.name Alice_Brown
1.billTo.address 456_Oak_Lane
1.billTo.city Pretendville
1.billTo.state HI
1.billTo.zip 98999
2.name Donald_Tramp
2.sku 24680
2.price 153.32
2.shipTo.name Kim_Jonil
2.shipTo.address 123_Hidroask
2.shipTo.city Pyonyan
2.shipTo.state NK
2.shipTo.zip 10012
2.billTo.name Donald_Tramp
2.billTo.address 456_Oak_Lane
2.billTo.city Pretendville
2.billTo.state HI
2.billTo.zip 98999

【例3】

$ cat jsondata2
[
["a","b"],
["c","d"]
]
$ rjson jsondata2
1 1 a
1 2 b
2 1 c
2 2 d

【関連項目】

wjson(1)

Last modified: 2022-10-27 16:56:26