2017-06-12 35 views
1

Windows 10環境下で実際にJQ1.5を使用して、インポート用のいくつかのjsonファイルをMS SQLデータベースに変換します。データの一部はUNIX timestampにフォーマットされており、これらのデータをISO 8601フォーマットに変換する必要があります。私は、データの変換のために実際に使用するコマンドに続いてJQ:UNIXタイムスタンプを日時に変換する

jq ' 
[ 
    { nid, title, nights, zone: .zones[0].title} + 
    (.sails[] | { sails_nid: .nid, arrival, departure }) + 
    (.sails[].cabins[] | 
    { cabintype: .cabinType.kindName, 
     cabinid: .cabinType.nid, 
     catalogPrice, 
     discountPrice, 
     discountPercentage, 
     currency 
    } 
) 
] 
' C:\Import\dreamlines_details.json > C:\Import\import_sails.json 

到着と出発はUnixの時間にフォーマットされたデータです。

データ:

[ 
    { 
    "nid": 434508, 
    "title": "Die schönsten Orte unserer Welt", 
    "nights": 121, 
    "zone": "Weltreise", 
    "sails_nid": 434516, 
    "arrival": 1525644000, 
    "departure": 1515193200, 
    "cabintype": "Innenkabine", 
    "cabinid": 379723, 
    "catalogPrice": 17879, 
    "discountPrice": 9519, 
    "discountPercentage": 0.4675876726886291, 
    "currency": "EUR" 
    }, 
    { 
    "nid": 434508, 
    "title": "Die schönsten Orte unserer Welt", 
    "nights": 121, 
    "zone": "Weltreise", 
    "sails_nid": 434516, 
    "arrival": 1525644000, 
    "departure": 1515193200, 
    "cabintype": "Innenkabine", 
    "cabinid": 379730, 
    "catalogPrice": 18599, 
    "discountPrice": 10239, 
    "discountPercentage": 0.44948653153395346, 
    "currency": "EUR" 
    } 
] 

私は演算子 "toDateまで" と "のstrftime" で構築して実験を行いました。しかし、エラーを解析するだけです。

+0

あなたは、重要なデータを入力JSONフラグメントを投稿する必要があり – RomanPerekhrest

+0

こんにちは@RomanPerekhrestは、データを追加 – TimoC

+1

あなたのコードをjsonの例は一致しません。あなたのコードを簡略化して、[MCVE](https://stackoverflow.com/help/mcve) – Thor

答えて

1

使用todateiso8601機能:(あなたの入力フラグメントに対して)

jq '.[].arrival |= todateiso8601 | .[].departure |= todateiso8601' C:\Import\import_sails.json 

出力:

[ 
    { 
    "nid": 434508, 
    "title": "Die schönsten Orte unserer Welt", 
    "nights": 121, 
    "zone": "Weltreise", 
    "sails_nid": 434516, 
    "arrival": "2018-05-06T22:00:00Z", 
    "departure": "2018-01-05T23:00:00Z", 
    "cabintype": "Innenkabine", 
    "cabinid": 379723, 
    "catalogPrice": 17879, 
    "discountPrice": 9519, 
    "discountPercentage": 0.4675876726886291, 
    "currency": "EUR" 
    }, 
    { 
    "nid": 434508, 
    "title": "Die schönsten Orte unserer Welt", 
    "nights": 121, 
    "zone": "Weltreise", 
    "sails_nid": 434516, 
    "arrival": "2018-05-06T22:00:00Z", 
    "departure": "2018-01-05T23:00:00Z", 
    "cabintype": "Innenkabine", 
    "cabinid": 379730, 
    "catalogPrice": 18599, 
    "discountPrice": 10239, 
    "discountPercentage": 0.44948653153395346, 
    "currency": "EUR" 
    } 
] 
+0

の素晴らしい例を守ってください。ありがとう! – TimoC

+0

@TimoC、ようこそ – RomanPerekhrest

関連する問題