【问题标题】:JQ: Invalid numeric literal at line 1, column 3JQ:第 1 行第 3 列的数字文字无效
【发布时间】:2018-05-12 14:15:21
【问题描述】:

我实际上移动了一些设备并更改了一些虚拟机的操作系统。我在 Windows 10 下使用 jq 1.5,现在出现 json 转换错误。我使用以下 jq 命令:

C:\import\Dreamlines\jq.exe "[{nid, includesservices: .includedServices, title, nights, company: .operator.shortTitle, zone: .zones[0].title, schiffsbeschreibung: .ship.factsAndFigures} + (.sails[] | ({ sails_nid: .nid, arrival, departure } + (.cabins[] | { cabinname: .cabinType.title, cabintype: .cabinType.kindName, cabinnid: .cabinType.nid, catalogPrice, discountPrice, discountPercentage, currency } )))   ]" C:\import\Dreamlines\dreamlines_details.json | out-file -encoding Unicode -filepath C:\import\Dreamlines\import_sails.json

生成以下json:

[{
    "nid": 509660,
    "includesservices": "<ul>\r\n\r\n<li>Kreuzfahrt ab/bis Dubai auf der MSC Splendida</li>\r\n<li>Unterkunft in der gebuchten Kabinenkategorie</li>\r\n<li>Vollpension, d.h. Frühstück, Mittagessen, Nachmittagstee, Snacks, Abendessen</li>\r\n<li>Vielfältiges Sportangebot, inkl. Nutzung Fitnesscenter und Open-Air- Sportanlagen</li>\r\n<li>Entertainment</li>\r\n<li>Qualifizierte Kinderbetreuung</li>\r\n</ul>\r\n\r\n\r\n\r\n",
    "title": "Von Dubai über Manama in 15 Tagen",
    "nights": 14,
    "company": "MSC",
    "zone": "Emirate und Orient",
    "schiffsbeschreibung": "<p><strong>Schiffsdaten</strong></p>\r\n<ul>\r\n<li>Inbetriebnahme: 2009</li>\r\n<li>Länge: 333 m</li>\r\n<li>Höhe: 67 m</li>\r\n<li>Breite: 38 m</li>\r\n<li>Tiefgang: 8,45 m</li>\r\n<li>Tonnage: 137.936 BRT</li>\r\n<li>Geschwindigkeit: 23 Knoten</li>\r\n<li>Anzahl der Decks: 18</li>\r\n<li>Anzahl der Kabine: 1.637</li>\r\n<li>Passagiere: 3.247</li>\r\n<li>Besatzung: 1.370</li>\r\n<li>Sprachen an Bord: Italienisch, Deutsch, Französisch, Englisch</li>\r\n<li>Bordwährung: US-Dollar, Euro</li>\r\n<li>Internet an Bord: Es gibt ein Internetcafé und in allen Kabinen kann eine Internetverbindung gegen einen Gebühr dazu gebucht werden.</li>\r\n</ul>\r\n",
    "sails_nid": 509662,
    "arrival": 1552694400,
    "departure": 1551484800,
    "cabinname": "Innenkabine Fantastica (Kat. I2):",
    "cabintype": "Innenkabine",
    "cabinnid": 2919,
    "catalogPrice": 0,
    "discountPrice": 0,
    "discountPercentage": 0,
    "currency": "EUR"
},
{
    "nid": 509660,
    "includesservices": "<ul>\r\n\r\n<li>Kreuzfahrt ab/bis Dubai auf der MSC Splendida</li>\r\n<li>Unterkunft in der gebuchten Kabinenkategorie</li>\r\n<li>Vollpension, d.h. Frühstück, Mittagessen, Nachmittagstee, Snacks, Abendessen</li>\r\n<li>Vielfältiges Sportangebot, inkl. Nutzung Fitnesscenter und Open-Air- Sportanlagen</li>\r\n<li>Entertainment</li>\r\n<li>Qualifizierte Kinderbetreuung</li>\r\n</ul>\r\n\r\n\r\n\r\n",
    "title": "Von Dubai über Manama in 15 Tagen",
    "nights": 14,
    "company": "MSC",
    "zone": "Emirate und Orient",
    "schiffsbeschreibung": "<p><strong>Schiffsdaten</strong></p>\r\n<ul>\r\n<li>Inbetriebnahme: 2009</li>\r\n<li>Länge: 333 m</li>\r\n<li>Höhe: 67 m</li>\r\n<li>Breite: 38 m</li>\r\n<li>Tiefgang: 8,45 m</li>\r\n<li>Tonnage: 137.936 BRT</li>\r\n<li>Geschwindigkeit: 23 Knoten</li>\r\n<li>Anzahl der Decks: 18</li>\r\n<li>Anzahl der Kabine: 1.637</li>\r\n<li>Passagiere: 3.247</li>\r\n<li>Besatzung: 1.370</li>\r\n<li>Sprachen an Bord: Italienisch, Deutsch, Französisch, Englisch</li>\r\n<li>Bordwährung: US-Dollar, Euro</li>\r\n<li>Internet an Bord: Es gibt ein Internetcafé und in allen Kabinen kann eine Internetverbindung gegen einen Gebühr dazu gebucht werden.</li>\r\n</ul>\r\n",
    "sails_nid": 509662,
    "arrival": 1552694400,
    "departure": 1551484800,
    "cabinname": "Innenkabine Bella (Kat. I1):",
    "cabintype": "Innenkabine",
    "cabinnid": 232847,
    "catalogPrice": 0,
    "discountPrice": 0,
    "discountPercentage": 0,
    "currency": "EUR"
},
{
    "nid": 509660,
    "includesservices": "<ul>\r\n\r\n<li>Kreuzfahrt ab/bis Dubai auf der MSC Splendida</li>\r\n<li>Unterkunft in der gebuchten Kabinenkategorie</li>\r\n<li>Vollpension, d.h. Frühstück, Mittagessen, Nachmittagstee, Snacks, Abendessen</li>\r\n<li>Vielfältiges Sportangebot, inkl. Nutzung Fitnesscenter und Open-Air- Sportanlagen</li>\r\n<li>Entertainment</li>\r\n<li>Qualifizierte Kinderbetreuung</li>\r\n</ul>\r\n\r\n\r\n\r\n",
    "title": "Von Dubai über Manama in 15 Tagen",
    "nights": 14,
    "company": "MSC",
    "zone": "Emirate und Orient",
    "schiffsbeschreibung": "<p><strong>Schiffsdaten</strong></p>\r\n<ul>\r\n<li>Inbetriebnahme: 2009</li>\r\n<li>Länge: 333 m</li>\r\n<li>Höhe: 67 m</li>\r\n<li>Breite: 38 m</li>\r\n<li>Tiefgang: 8,45 m</li>\r\n<li>Tonnage: 137.936 BRT</li>\r\n<li>Geschwindigkeit: 23 Knoten</li>\r\n<li>Anzahl der Decks: 18</li>\r\n<li>Anzahl der Kabine: 1.637</li>\r\n<li>Passagiere: 3.247</li>\r\n<li>Besatzung: 1.370</li>\r\n<li>Sprachen an Bord: Italienisch, Deutsch, Französisch, Englisch</li>\r\n<li>Bordwährung: US-Dollar, Euro</li>\r\n<li>Internet an Bord: Es gibt ein Internetcafé und in allen Kabinen kann eine Internetverbindung gegen einen Gebühr dazu gebucht werden.</li>\r\n</ul>\r\n",
    "sails_nid": 509662,
    "arrival": 1552694400,
    "departure": 1551484800,
    "cabinname": "Außenkabine Bella (Kat. O1): ",
    "cabintype": "Außenkabine",
    "cabinnid": 232848,
    "catalogPrice": 0,
    "discountPrice": 0,
    "discountPercentage": 0,
    "currency": "EUR"
},
{
    "nid": 509660,
    "includesservices": "<ul>\r\n\r\n<li>Kreuzfahrt ab/bis Dubai auf der MSC Splendida</li>\r\n<li>Unterkunft in der gebuchten Kabinenkategorie</li>\r\n<li>Vollpension, d.h. Frühstück, Mittagessen, Nachmittagstee, Snacks, Abendessen</li>\r\n<li>Vielfältiges Sportangebot, inkl. Nutzung Fitnesscenter und Open-Air- Sportanlagen</li>\r\n<li>Entertainment</li>\r\n<li>Qualifizierte Kinderbetreuung</li>\r\n</ul>\r\n\r\n\r\n\r\n",
    "title": "Von Dubai über Manama in 15 Tagen",
    "nights": 14,
    "company": "MSC",
    "zone": "Emirate und Orient",
    "schiffsbeschreibung": "<p><strong>Schiffsdaten</strong></p>\r\n<ul>\r\n<li>Inbetriebnahme: 2009</li>\r\n<li>Länge: 333 m</li>\r\n<li>Höhe: 67 m</li>\r\n<li>Breite: 38 m</li>\r\n<li>Tiefgang: 8,45 m</li>\r\n<li>Tonnage: 137.936 BRT</li>\r\n<li>Geschwindigkeit: 23 Knoten</li>\r\n<li>Anzahl der Decks: 18</li>\r\n<li>Anzahl der Kabine: 1.637</li>\r\n<li>Passagiere: 3.247</li>\r\n<li>Besatzung: 1.370</li>\r\n<li>Sprachen an Bord: Italienisch, Deutsch, Französisch, Englisch</li>\r\n<li>Bordwährung: US-Dollar, Euro</li>\r\n<li>Internet an Bord: Es gibt ein Internetcafé und in allen Kabinen kann eine Internetverbindung gegen einen Gebühr dazu gebucht werden.</li>\r\n</ul>\r\n",
    "sails_nid": 509662,
    "arrival": 1552694400,
    "departure": 1551484800,
    "cabinname": "Außenkabine Fantastica (Kat. O2): ",
    "cabintype": "Außenkabine",
    "cabinnid": 232849,
    "catalogPrice": 0,
    "discountPrice": 0,
    "discountPercentage": 0,
    "currency": "EUR"
},
{
    "nid": 509660,
    "includesservices": "<ul>\r\n\r\n<li>Kreuzfahrt ab/bis Dubai auf der MSC Splendida</li>\r\n<li>Unterkunft in der gebuchten Kabinenkategorie</li>\r\n<li>Vollpension, d.h. Frühstück, Mittagessen, Nachmittagstee, Snacks, Abendessen</li>\r\n<li>Vielfältiges Sportangebot, inkl. Nutzung Fitnesscenter und Open-Air- Sportanlagen</li>\r\n<li>Entertainment</li>\r\n<li>Qualifizierte Kinderbetreuung</li>\r\n</ul>\r\n\r\n\r\n\r\n",
    "title": "Von Dubai über Manama in 15 Tagen",
    "nights": 14,
    "company": "MSC",
    "zone": "Emirate und Orient",
    "schiffsbeschreibung": "<p><strong>Schiffsdaten</strong></p>\r\n<ul>\r\n<li>Inbetriebnahme: 2009</li>\r\n<li>Länge: 333 m</li>\r\n<li>Höhe: 67 m</li>\r\n<li>Breite: 38 m</li>\r\n<li>Tiefgang: 8,45 m</li>\r\n<li>Tonnage: 137.936 BRT</li>\r\n<li>Geschwindigkeit: 23 Knoten</li>\r\n<li>Anzahl der Decks: 18</li>\r\n<li>Anzahl der Kabine: 1.637</li>\r\n<li>Passagiere: 3.247</li>\r\n<li>Besatzung: 1.370</li>\r\n<li>Sprachen an Bord: Italienisch, Deutsch, Französisch, Englisch</li>\r\n<li>Bordwährung: US-Dollar, Euro</li>\r\n<li>Internet an Bord: Es gibt ein Internetcafé und in allen Kabinen kann eine Internetverbindung gegen einen Gebühr dazu gebucht werden.</li>\r\n</ul>\r\n",
    "sails_nid": 509662,
    "arrival": 1552694400,
    "departure": 1551484800,
    "cabinname": "Balkonkabine Bella (Kat. B1): ",
    "cabintype": "Balkonkabine",
    "cabinnid": 232850,
    "catalogPrice": 0,
    "discountPrice": 0,
    "discountPercentage": 0,
    "currency": "EUR"
},
{
    "nid": 509660,
    "includesservices": "<ul>\r\n\r\n<li>Kreuzfahrt ab/bis Dubai auf der MSC Splendida</li>\r\n<li>Unterkunft in der gebuchten Kabinenkategorie</li>\r\n<li>Vollpension, d.h. Frühstück, Mittagessen, Nachmittagstee, Snacks, Abendessen</li>\r\n<li>Vielfältiges Sportangebot, inkl. Nutzung Fitnesscenter und Open-Air- Sportanlagen</li>\r\n<li>Entertainment</li>\r\n<li>Qualifizierte Kinderbetreuung</li>\r\n</ul>\r\n\r\n\r\n\r\n",
    "title": "Von Dubai über Manama in 15 Tagen",
    "nights": 14,
    "company": "MSC",
    "zone": "Emirate und Orient",
    "schiffsbeschreibung": "<p><strong>Schiffsdaten</strong></p>\r\n<ul>\r\n<li>Inbetriebnahme: 2009</li>\r\n<li>Länge: 333 m</li>\r\n<li>Höhe: 67 m</li>\r\n<li>Breite: 38 m</li>\r\n<li>Tiefgang: 8,45 m</li>\r\n<li>Tonnage: 137.936 BRT</li>\r\n<li>Geschwindigkeit: 23 Knoten</li>\r\n<li>Anzahl der Decks: 18</li>\r\n<li>Anzahl der Kabine: 1.637</li>\r\n<li>Passagiere: 3.247</li>\r\n<li>Besatzung: 1.370</li>\r\n<li>Sprachen an Bord: Italienisch, Deutsch, Französisch, Englisch</li>\r\n<li>Bordwährung: US-Dollar, Euro</li>\r\n<li>Internet an Bord: Es gibt ein Internetcafé und in allen Kabinen kann eine Internetverbindung gegen einen Gebühr dazu gebucht werden.</li>\r\n</ul>\r\n",
    "sails_nid": 509662,
    "arrival": 1552694400,
    "departure": 1551484800,
    "cabinname": "Balkonkabine Fantastica (Kat. B2): ",
    "cabintype": "Balkonkabine",
    "cabinnid": 232851,
    "catalogPrice": 0,
    "discountPrice": 0,
    "discountPercentage": 0,
    "currency": "EUR"
},
{
    "nid": 509660,
    "includesservices": "<ul>\r\n\r\n<li>Kreuzfahrt ab/bis Dubai auf der MSC Splendida</li>\r\n<li>Unterkunft in der gebuchten Kabinenkategorie</li>\r\n<li>Vollpension, d.h. Frühstück, Mittagessen, Nachmittagstee, Snacks, Abendessen</li>\r\n<li>Vielfältiges Sportangebot, inkl. Nutzung Fitnesscenter und Open-Air- Sportanlagen</li>\r\n<li>Entertainment</li>\r\n<li>Qualifizierte Kinderbetreuung</li>\r\n</ul>\r\n\r\n\r\n\r\n",
    "title": "Von Dubai über Manama in 15 Tagen",
    "nights": 14,
    "company": "MSC",
    "zone": "Emirate und Orient",
    "schiffsbeschreibung": "<p><strong>Schiffsdaten</strong></p>\r\n<ul>\r\n<li>Inbetriebnahme: 2009</li>\r\n<li>Länge: 333 m</li>\r\n<li>Höhe: 67 m</li>\r\n<li>Breite: 38 m</li>\r\n<li>Tiefgang: 8,45 m</li>\r\n<li>Tonnage: 137.936 BRT</li>\r\n<li>Geschwindigkeit: 23 Knoten</li>\r\n<li>Anzahl der Decks: 18</li>\r\n<li>Anzahl der Kabine: 1.637</li>\r\n<li>Passagiere: 3.247</li>\r\n<li>Besatzung: 1.370</li>\r\n<li>Sprachen an Bord: Italienisch, Deutsch, Französisch, Englisch</li>\r\n<li>Bordwährung: US-Dollar, Euro</li>\r\n<li>Internet an Bord: Es gibt ein Internetcafé und in allen Kabinen kann eine Internetverbindung gegen einen Gebühr dazu gebucht werden.</li>\r\n</ul>\r\n",
    "sails_nid": 509662,
    "arrival": 1552694400,
    "departure": 1551484800,
    "cabinname": "Balkonkabine Aurea (Kat. B3): ",
    "cabintype": "Balkonkabine",
    "cabinnid": 232853,
    "catalogPrice": 0,
    "discountPrice": 0,
    "discountPercentage": 0,
    "currency": "EUR"
},
{
    "nid": 509660,
    "includesservices": "<ul>\r\n\r\n<li>Kreuzfahrt ab/bis Dubai auf der MSC Splendida</li>\r\n<li>Unterkunft in der gebuchten Kabinenkategorie</li>\r\n<li>Vollpension, d.h. Frühstück, Mittagessen, Nachmittagstee, Snacks, Abendessen</li>\r\n<li>Vielfältiges Sportangebot, inkl. Nutzung Fitnesscenter und Open-Air- Sportanlagen</li>\r\n<li>Entertainment</li>\r\n<li>Qualifizierte Kinderbetreuung</li>\r\n</ul>\r\n\r\n\r\n\r\n",
    "title": "Von Dubai über Manama in 15 Tagen",
    "nights": 14,
    "company": "MSC",
    "zone": "Emirate und Orient",
    "schiffsbeschreibung": "<p><strong>Schiffsdaten</strong></p>\r\n<ul>\r\n<li>Inbetriebnahme: 2009</li>\r\n<li>Länge: 333 m</li>\r\n<li>Höhe: 67 m</li>\r\n<li>Breite: 38 m</li>\r\n<li>Tiefgang: 8,45 m</li>\r\n<li>Tonnage: 137.936 BRT</li>\r\n<li>Geschwindigkeit: 23 Knoten</li>\r\n<li>Anzahl der Decks: 18</li>\r\n<li>Anzahl der Kabine: 1.637</li>\r\n<li>Passagiere: 3.247</li>\r\n<li>Besatzung: 1.370</li>\r\n<li>Sprachen an Bord: Italienisch, Deutsch, Französisch, Englisch</li>\r\n<li>Bordwährung: US-Dollar, Euro</li>\r\n<li>Internet an Bord: Es gibt ein Internetcafé und in allen Kabinen kann eine Internetverbindung gegen einen Gebühr dazu gebucht werden.</li>\r\n</ul>\r\n",
    "sails_nid": 509662,
    "arrival": 1552694400,
    "departure": 1551484800,
    "cabinname": "Aurea Suite (Kat. S3): ",
    "cabintype": "Suite",
    "cabinnid": 232854,
    "catalogPrice": 0,
    "discountPrice": 0,
    "discountPercentage": 0,
    "currency": "EUR"
},
{
    "nid": 509660,
    "includesservices": "<ul>\r\n\r\n<li>Kreuzfahrt ab/bis Dubai auf der MSC Splendida</li>\r\n<li>Unterkunft in der gebuchten Kabinenkategorie</li>\r\n<li>Vollpension, d.h. Frühstück, Mittagessen, Nachmittagstee, Snacks, Abendessen</li>\r\n<li>Vielfältiges Sportangebot, inkl. Nutzung Fitnesscenter und Open-Air- Sportanlagen</li>\r\n<li>Entertainment</li>\r\n<li>Qualifizierte Kinderbetreuung</li>\r\n</ul>\r\n\r\n\r\n\r\n",
    "title": "Von Dubai über Manama in 15 Tagen",
    "nights": 14,
    "company": "MSC",
    "zone": "Emirate und Orient",
    "schiffsbeschreibung": "<p><strong>Schiffsdaten</strong></p>\r\n<ul>\r\n<li>Inbetriebnahme: 2009</li>\r\n<li>Länge: 333 m</li>\r\n<li>Höhe: 67 m</li>\r\n<li>Breite: 38 m</li>\r\n<li>Tiefgang: 8,45 m</li>\r\n<li>Tonnage: 137.936 BRT</li>\r\n<li>Geschwindigkeit: 23 Knoten</li>\r\n<li>Anzahl der Decks: 18</li>\r\n<li>Anzahl der Kabine: 1.637</li>\r\n<li>Passagiere: 3.247</li>\r\n<li>Besatzung: 1.370</li>\r\n<li>Sprachen an Bord: Italienisch, Deutsch, Französisch, Englisch</li>\r\n<li>Bordwährung: US-Dollar, Euro</li>\r\n<li>Internet an Bord: Es gibt ein Internetcafé und in allen Kabinen kann eine Internetverbindung gegen einen Gebühr dazu gebucht werden.</li>\r\n</ul>\r\n",
    "sails_nid": 509662,
    "arrival": 1552694400,
    "departure": 1551484800,
    "cabinname": "Deluxe Suite (Kat. YC1): ",
    "cabintype": "Suite",
    "cabinnid": 232855,
    "catalogPrice": 0,
    "discountPrice": 0,
    "discountPercentage": 0,
    "currency": "EUR"
},
{
    "nid": 509660,
    "includesservices": "<ul>\r\n\r\n<li>Kreuzfahrt ab/bis Dubai auf der MSC Splendida</li>\r\n<li>Unterkunft in der gebuchten Kabinenkategorie</li>\r\n<li>Vollpension, d.h. Frühstück, Mittagessen, Nachmittagstee, Snacks, Abendessen</li>\r\n<li>Vielfältiges Sportangebot, inkl. Nutzung Fitnesscenter und Open-Air- Sportanlagen</li>\r\n<li>Entertainment</li>\r\n<li>Qualifizierte Kinderbetreuung</li>\r\n</ul>\r\n\r\n\r\n\r\n",
    "title": "Von Dubai über Manama in 15 Tagen",
    "nights": 14,
    "company": "MSC",
    "zone": "Emirate und Orient",
    "schiffsbeschreibung": "<p><strong>Schiffsdaten</strong></p>\r\n<ul>\r\n<li>Inbetriebnahme: 2009</li>\r\n<li>Länge: 333 m</li>\r\n<li>Höhe: 67 m</li>\r\n<li>Breite: 38 m</li>\r\n<li>Tiefgang: 8,45 m</li>\r\n<li>Tonnage: 137.936 BRT</li>\r\n<li>Geschwindigkeit: 23 Knoten</li>\r\n<li>Anzahl der Decks: 18</li>\r\n<li>Anzahl der Kabine: 1.637</li>\r\n<li>Passagiere: 3.247</li>\r\n<li>Besatzung: 1.370</li>\r\n<li>Sprachen an Bord: Italienisch, Deutsch, Französisch, Englisch</li>\r\n<li>Bordwährung: US-Dollar, Euro</li>\r\n<li>Internet an Bord: Es gibt ein Internetcafé und in allen Kabinen kann eine Internetverbindung gegen einen Gebühr dazu gebucht werden.</li>\r\n</ul>\r\n",
    "sails_nid": 509662,
    "arrival": 1552694400,
    "departure": 1551484800,
    "cabinname": "Executive & Family Suite (Kat. YC2): ",
    "cabintype": "Suite",
    "cabinnid": 232856,
    "catalogPrice": 0,
    "discountPrice": 0,
    "discountPercentage": 0,
    "currency": "EUR"
},
{
    "nid": 509660,
    "includesservices": "<ul>\r\n\r\n<li>Kreuzfahrt ab/bis Dubai auf der MSC Splendida</li>\r\n<li>Unterkunft in der gebuchten Kabinenkategorie</li>\r\n<li>Vollpension, d.h. Frühstück, Mittagessen, Nachmittagstee, Snacks, Abendessen</li>\r\n<li>Vielfältiges Sportangebot, inkl. Nutzung Fitnesscenter und Open-Air- Sportanlagen</li>\r\n<li>Entertainment</li>\r\n<li>Qualifizierte Kinderbetreuung</li>\r\n</ul>\r\n\r\n\r\n\r\n",
    "title": "Von Dubai über Manama in 15 Tagen",
    "nights": 14,
    "company": "MSC",
    "zone": "Emirate und Orient",
    "schiffsbeschreibung": "<p><strong>Schiffsdaten</strong></p>\r\n<ul>\r\n<li>Inbetriebnahme: 2009</li>\r\n<li>Länge: 333 m</li>\r\n<li>Höhe: 67 m</li>\r\n<li>Breite: 38 m</li>\r\n<li>Tiefgang: 8,45 m</li>\r\n<li>Tonnage: 137.936 BRT</li>\r\n<li>Geschwindigkeit: 23 Knoten</li>\r\n<li>Anzahl der Decks: 18</li>\r\n<li>Anzahl der Kabine: 1.637</li>\r\n<li>Passagiere: 3.247</li>\r\n<li>Besatzung: 1.370</li>\r\n<li>Sprachen an Bord: Italienisch, Deutsch, Französisch, Englisch</li>\r\n<li>Bordwährung: US-Dollar, Euro</li>\r\n<li>Internet an Bord: Es gibt ein Internetcafé und in allen Kabinen kann eine Internetverbindung gegen einen Gebühr dazu gebucht werden.</li>\r\n</ul>\r\n",
    "sails_nid": 509662,
    "arrival": 1552694400,
    "departure": 1551484800,
    "cabinname": "Royal Suite (Kat. YC3): ",
    "cabintype": "Suite",
    "cabinnid": 232857,
    "catalogPrice": 0,
    "discountPrice": 0,
    "discountPercentage": 0,
    "currency": "EUR"
},
{
    "nid": 509660,
    "includesservices": "<ul>\r\n\r\n<li>Kreuzfahrt ab/bis Dubai auf der MSC Splendida</li>\r\n<li>Unterkunft in der gebuchten Kabinenkategorie</li>\r\n<li>Vollpension, d.h. Frühstück, Mittagessen, Nachmittagstee, Snacks, Abendessen</li>\r\n<li>Vielfältiges Sportangebot, inkl. Nutzung Fitnesscenter und Open-Air- Sportanlagen</li>\r\n<li>Entertainment</li>\r\n<li>Qualifizierte Kinderbetreuung</li>\r\n</ul>\r\n\r\n\r\n\r\n",
    "title": "Von Dubai über Manama in 15 Tagen",
    "nights": 14,
    "company": "MSC",
    "zone": "Emirate und Orient",
    "schiffsbeschreibung": "<p><strong>Schiffsdaten</strong></p>\r\n<ul>\r\n<li>Inbetriebnahme: 2009</li>\r\n<li>Länge: 333 m</li>\r\n<li>Höhe: 67 m</li>\r\n<li>Breite: 38 m</li>\r\n<li>Tiefgang: 8,45 m</li>\r\n<li>Tonnage: 137.936 BRT</li>\r\n<li>Geschwindigkeit: 23 Knoten</li>\r\n<li>Anzahl der Decks: 18</li>\r\n<li>Anzahl der Kabine: 1.637</li>\r\n<li>Passagiere: 3.247</li>\r\n<li>Besatzung: 1.370</li>\r\n<li>Sprachen an Bord: Italienisch, Deutsch, Französisch, Englisch</li>\r\n<li>Bordwährung: US-Dollar, Euro</li>\r\n<li>Internet an Bord: Es gibt ein Internetcafé und in allen Kabinen kann eine Internetverbindung gegen einen Gebühr dazu gebucht werden.</li>\r\n</ul>\r\n",
    "sails_nid": 509662,
    "arrival": 1552694400,
    "departure": 1551484800,
    "cabinname": "Deluxe Suite Kat. YH1",
    "cabintype": "Suite",
    "cabinnid": 243945,
    "catalogPrice": 0,
    "discountPrice": 0,
    "discountPercentage": 0,
    "currency": "EUR"
},
{
    "nid": 509660,
    "includesservices": "<ul>\r\n\r\n<li>Kreuzfahrt ab/bis Dubai auf der MSC Splendida</li>\r\n<li>Unterkunft in der gebuchten Kabinenkategorie</li>\r\n<li>Vollpension, d.h. Frühstück, Mittagessen, Nachmittagstee, Snacks, Abendessen</li>\r\n<li>Vielfältiges Sportangebot, inkl. Nutzung Fitnesscenter und Open-Air- Sportanlagen</li>\r\n<li>Entertainment</li>\r\n<li>Qualifizierte Kinderbetreuung</li>\r\n</ul>\r\n\r\n\r\n\r\n",
    "title": "Von Dubai über Manama in 15 Tagen",
    "nights": 14,
    "company": "MSC",
    "zone": "Emirate und Orient",
    "schiffsbeschreibung": "<p><strong>Schiffsdaten</strong></p>\r\n<ul>\r\n<li>Inbetriebnahme: 2009</li>\r\n<li>Länge: 333 m</li>\r\n<li>Höhe: 67 m</li>\r\n<li>Breite: 38 m</li>\r\n<li>Tiefgang: 8,45 m</li>\r\n<li>Tonnage: 137.936 BRT</li>\r\n<li>Geschwindigkeit: 23 Knoten</li>\r\n<li>Anzahl der Decks: 18</li>\r\n<li>Anzahl der Kabine: 1.637</li>\r\n<li>Passagiere: 3.247</li>\r\n<li>Besatzung: 1.370</li>\r\n<li>Sprachen an Bord: Italienisch, Deutsch, Französisch, Englisch</li>\r\n<li>Bordwährung: US-Dollar, Euro</li>\r\n<li>Internet an Bord: Es gibt ein Internetcafé und in allen Kabinen kann eine Internetverbindung gegen einen Gebühr dazu gebucht werden.</li>\r\n</ul>\r\n",
    "sails_nid": 509662,
    "arrival": 1552694400,
    "departure": 1551484800,
    "cabinname": "Innenkabine Wellness (Kat. IW): ",
    "cabintype": "Innenkabine",
    "cabinnid": 360681,
    "catalogPrice": 0,
    "discountPrice": 0,
    "discountPercentage": 0,
    "currency": "EUR"
}

]

效果很好。我使用第二个命令来操作 Arrival/departue 对象:

C:\import\Dreamlines\jq.exe ".[].arrival |= todateiso8601 | .[].departure |= todateiso8601" C:\import\Dreamlines\import_sails.json | out-file -filepath C:\import\Dreamlines\date_sails.json -encoding Unicode

在新系统上,我收到以下错误:JQ:第 1 行第 3 列的数字文字无效。首先我认为 api 更改了一些数据,但在旧系统上工作正常。我检查了 json,validor 说这是一个有效的 json。

提示?

问候 蒂莫

【问题讨论】:

    标签: json schema jq


    【解决方案1】:

    是的,它是有效的 JSON,但 jq 查询根本不匹配。

    首先,输入的 JSON 是一个数组,所以大概你想使用map(...) 而不是[...]。 (调试提示:从小处着手。]

    其次,JSON 的 schema 与查询不匹配。例如,查询假设有一个名为 sails 的键,它在 JSON 中的任何位置都不存在。 (调试提示:使用schema.jq 查看 JSON 文档的架构——见下文。)

    schema.jq

    使用 https://gist.github.com/pkoppstein/a5abb4ebef3b0f72a6ed 并取消注释最后一行:

    $ jq -f schema.jq input.json
    {
      "nid": "number",
      "includesservices": "string",
      "title": "string",
      "nights": "number",
      "company": "string",
      "zone": "string",
      "schiffsbeschreibung": "string",
      "sails_nid": "number",
      "arrival": "number",
      "departure": "number",
      "cabinname": "string",
      "cabintype": "string",
      "cabinnid": "number",
      "catalogPrice": "number",
      "discountPrice": "number",
      "discountPercentage": "number",
      "currency": "string"
    }
    

    【讨论】:

    • 嗨,Peak,感谢您的输入。我更新了周二的帖子,因为我的描述有误(如果我同时做两种不同的想法,就会发生这种情况。抱歉
    • 我还测试了几个点以及 Schemata。我在第一次转换之前上传了原始 json: [link]codeshare.io/2jvLNL 。我更改了顺序并首先在(原始)json 中转换了到达/离开,然后开始重建。同样的错误。还是不知道。在另一个运行良好的 Windows 系统上...问候 Timo
    • 嗨,Peak,再次抱歉,但我不明白你的意思。 codeshare.io 链接是原始的 json 文件。是的,您是对的,在不同的数组/对象下有几个到达/离开键。我的第一个 json 命令将原始 json 转换为发布的 json 数组。在那个 json 中,每个对象我只有一个到达/离开键。第二个命令将到达/离开键的值从 unix 时间戳更改为日期。 Schemata 分析表明,在修改后的 json 中,所有 Arrival/departure 字段都是数字。在 jq Play 或 unix 下或未打补丁的 w10 下工作
    • @TimoC - 我尝试将第一个转换(以“[{nid, ...”开头的那个)应用于 codeshare.io 链接的内容,但收到错误消息:@ 987654328@
    • @TimoC - 一些好消息 - 我已经验证将第二个过滤器应用于 Q 中包含的 JSON 确实有效。所以我想知道文件的编码是否正确。你能在那个文件上运行jq length 吗?结果应该是 13。
    【解决方案2】:

    问题没有解决,但我设计了一个解决方法(我将两个操作合并为一个)。我创建了一个问题@github vor。 感谢您的帮助。

    问候 蒂莫

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多