Jak importovat soubory JSON v modulech ES

Pokud používáte moduly EcmaScript, pravděpodobně znáte problém, že nelze „jen“ importovat soubory JSON. Chcete-li importovat a načíst soubor JSON v modulu ES, musíte provést "window.fetch tanec", abyste si soubor vyžádali a sami jej analyzovali. Není to skvělé...

Ale je tu naděje! Podle chromestatus.com se moduly JSON dodávají v prohlížeči Chrome 91. Rychle jsem to zkusil a překvapivě následující kód JavaScript nefunguje.

<script type="module">
  import data from "./data.json";
  console.log(data);
</script>

V Chrome 91 vyvolá následující výjimku:

Neprohlédl jsem si podrobně diskuzi o specifikacích na toto téma, ale zdá se, že nová syntaxe pro import modulů JSON je následující. 😲

import data from "./data.json" assert { type: "json" };

console.log(data);

To je docela něco a musím si o tom něco přečíst. Ale co, co usnadňuje import JSON, je více než vítáno!

A když je v Chrome řešení, nemůže trvat dlouho, než bude odesláno v Node.js, protože import souborů JSON v modulech Node ES také není skvělý. 🙈

Upravit: Axel Rauschmayer sdílel, že import JSON je založen na tvrzeních importu a více si o tom můžete přečíst na jeho blogu.