从 QR 符号中获取字符串

Get String from QR Symbol

我在一个项目中使用ZBAR来读取条码,还有QR。阅读 QR 后,我收到这样的字符串:

eyJ1cmxTZXJ2bGV0IjoiaHR0cHM6Ly9kZW1vcy5pbmZhcGxpYy5lcy9pbnZlbnRhcmlvd2ViL0ludmVudGFyaW9KU09OIiwidG9rZW4iOiI1MjFjY2I5Ny0wNWZkLTRjZGEtYjYxMi00ZTM4YTcwM2MwODkiLCJpZENsaWVudGUiOiJkZW1vcyJ3

事实是,我知道这是一个 JSON,我需要 JSON 中的一个值。但同样的条码扫描仪也必须用于读取常规条码。

我怎么知道读取的是二维码还是普通条形码?而且,一旦我知道了,我怎样才能从那个奇怪的字符串中提取 JSON?

我的代码如下:

PreviewCallback CallbackCamara = new PreviewCallback()
{
    public void onPreviewFrame(byte[] data, Camera camera) {
        Camera.Parameters parameters = camera.getParameters();
        Size dimensiones = parameters.getPreviewSize();

        Image barcode = new Image(dimensiones.width, dimensiones.height,"Y800");
        barcode.setData(data);

        int result = escaner.scanImage(barcode);

        if (result != 0) {
            previsualizandoCamara = false;
            mCamera.setPreviewCallback(null);
            mCamera.stopPreview();
            SymbolSet syms = escaner.getResults();
            for (Symbol sym : syms) {

                valor = sym;

                barcodeScanned = true;
                DevolverCodigo(sym.getData());
            }
        }
    }
};

我想出来了,它是一个 BASE64 字符串,要对其进行解码:

String stringFromBase = new String(Base64.decode(sym.getData(), Base64.DEFAULT));

在那个字符串中我有我的 JSON 对象。