首页 > 解决方案 > 如何使用 Angular 将 JSON 存储在 QR 码中

问题描述

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

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

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

这是我到目前为止所做的。

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

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

标签: angularangular6qr-code

解决方案


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

目前,如果我将 JSON 转换为字符串,我可以实现这一点

正如您所说,如果您想将原始 JSON 存储在 QR 码中,您必须首先使用JSON.stringify(json). 读取 QR 码时,您别无选择,只能解析字符串以获取原始 JSON,使用JSON.parse(str).

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

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

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

您可以在此页面上找到更多关于 QR 码的压缩方法。


推荐阅读