【问题标题】:How to convert a binary string to json string in flutter如何在颤动中将二进制字符串转换为json字符串
【发布时间】:2021-06-23 10:26:13
【问题描述】:

我正在使用 angel broking socket connection in flutter,我正在使用 socket 获取股票数据。作为回报,我得到一个二进制压缩字符串,我需要将其转换为 json 字符串。 Angel broking java sdk 已经在 java 中提供了这种转换,但我想知道如何在 dart 中进行相同的转换。这里我分享一下我需要在dart中使用的java代码供参考。

 String data = "eJyLrlZKzFayUsrLVtJRKkksBrGT84Ds3OJ0CLM2FgDCiAqQ"; // I am getting this string from socket

            byte[] decoded = Base64.getDecoder().decode(data);
            byte[] result = decompress(decoded);
            String str = new String(result, StandardCharsets.UTF_8);

            JSONArray tickerData = new JSONArray(str);

 public static byte[] decompress(byte[] compressedTxt) throws IOException {
    ByteArrayOutputStream os = new ByteArrayOutputStream();
    try (OutputStream ios = new InflaterOutputStream(os)) {
        ios.write(compressedTxt);
    }

    return os.toByteArray();
}

请帮我把这个java代码转换成flutter dart。

【问题讨论】:

    标签: java flutter dart base64 dart-pub


    【解决方案1】:

    以下代码:

    final str = 'eJyLrlZKzFayUsrLVtJRKkksBrGT84Ds3OJ0CLM2FgDCiAqQ';
    print(utf8.fuse(zlib).fuse(base64).decode(str));
    

    打印[{"ak":"nk","task":"cn","msg":"cn"}]

    编辑 但是如果你想要对解码后的字符串做的唯一事情是调用json.decode 方法,那么你可以更进一步:

    List l = json.fuse(utf8).fuse(zlib).fuse(base64).decode(str));
    print(l);
    print(l[0]);
    print(l[0]['task']);
    

    【讨论】:

      猜你喜欢
      • 2021-06-04
      • 1970-01-01
      • 1970-01-01
      • 2023-03-30
      • 2016-01-14
      • 1970-01-01
      • 2014-08-02
      • 1970-01-01
      • 2019-08-23
      相关资源
      最近更新 更多