私はすでにCreate nested JSON from flat csvを読みましたが、私の場合は役に立ちませんでした。
Google Docs で作成した 11 行 74 列 (いくつかの列は占有されていません) の非常に大きなスプレッドシートがあります。
Google ドライブで例を作成しました。としてエクスポートすると、CSV
次のようになります。
id,name,email,phone,picture01,picture02,picture03,status
1,Alice,alice@gmail.com,2131232,"image01_01
[this is an image]",image01_02,image01_03,single
2,Bob,bob@gmail.com,2854839,image02_01,"image02_02
[description to image 2]",,married
3,Frank,frank@gmail.com,987987,image03_01,image03_02,,single
4,Shawn,shawn@gmail.com,,image04_01,,,single
今、私はJSON
次のような構造を持ちたいと思っています:
{
"persons": [
{
"type": "config.profile",
"id": "1",
"email": "alice@gmail.com",
"pictureId": "p01",
"statusId": "s01"
},
{
"type": "config.pictures",
"id": "p01",
"album": [
{
"image": "image01_01",
"description": "this is an image"
},
{
"image": "image_01_02",
"description": ""
},
{
"image": "image_01_03",
"description": ""
}
]
},
{
"type": "config.status",
"id": "s01",
"status": "single"
},
{
"type": "config.profile",
"id": "2",
"email": "bob@gmail.com",
"pictureId": "p02",
"statusId": "s02"
},
{
"type": "config.pictures",
"id": "p02",
"album": [
{
"image": "image02_01",
"description": ""
},
{
"image": "image_02_02",
"description": "description to image 2"
}
]
},
{
"type": "config.status",
"id": "s02",
"status": "married"
}
]
}
他の行についても同様です。
私の理論的なアプローチは、CSV
行ごとにファイルを調べることです (ここで最初の問題が始まります: 現在、すべての行は 1 行ですが、場合によっては複数の行に等しいため、コンマを数える必要がありますか?)。各行は、 、、、およびconfig.profile
を含む のブロックと同じです(後者の 2 つは行番号に応じて生成されます)。id
email
pictureId
statusId
次に、行ごとに、ブロックに挿入されたものconfig.pictures
と同じブロックが生成されます。は、与えられた写真と同じ数の要素の配列です。id
config.profile
album
最後に、各行にはconfig.status
ブロックがあり、これも でid
指定されたものと同じで、対応するステータスconfig.profile
を持つ の 1 つのエントリがあります。status
ネストされた条件付きの JSON ファイルを作成する方法がまったくわかりません。
、、 などのように、 で直接指定されていないネストや追加情報なしで、CSV
を validに変換するところまで来ました。JSON
CSV
type
pictureId
statusId
どんな助けでも大歓迎です。これを別のスクリプト言語 ( ruby
.
誰かがこれが宿題か何かだと思う前に。そうではない。そうでなければ非常に面倒なコピー&ペースト作業を自動化したいだけです。