如何使用 Angular 将 JSON 存储在二维码中

How store a JSON in a QR code using Angular

我正在从我的 Angular 网络应用生成 QR codes。我正在使用 npmngx-qrcode2 来生成二维码。

这个 npm 包或另一个 npm 包有没有办法在 QR 中存储 JSON 对象。然后读取QR,并使用qr reader zxing/ngx-scanner提取JSON。

目前,如果我将 JSON 转换为字符串,将该字符串存储在 QR 中,然后当我读取它时,将其解析回 JSON.

这是我目前所做的。

生成二维码 https://stackblitz.com/edit/angular-ja13vl

阅读二维码 https://stackblitz.com/edit/angular-qr-reader

您似乎找到了解决方案,我认为这似乎完全正确。

Currently I'm able to achieve this if I convert the JSON to a string

正如你所说,如果你想在二维码中存储原始JSON,你必须先使用JSON.stringify(json)对其进行字符串化。 读取 QR 码时,您别无选择,只能使用 JSON.parse(str).

解析字符串以获取原始 JSON

但是,您也可以 compress JSON 并存储表示此压缩 JSON 的字符串。这将允许您在二维码中存储更多信息。

您可以为此使用 jsonpack 这样的库,它最多可压缩原始大小的 55%。你可以这样使用它:

const qrcode = jsonpack.pack(json);
const json = jsonpack.unpack(qrcode);

您可以找到更多二维码压缩思路on this page