Orange301511 2021-04-11 22:14 采纳率: 28.6%
浏览 36

flutter使用websocket长连接,接收的数据是arraybuffer如何解析为json

 flutter 2.0.0中使用websocket接收的数据为ArrayBuffer,该如何解析为json数据

  如下返回的ArrayBuffer

[31, 139, 8, 0, 0, 0, 0, 0, 0, 0, 21, 78, 187, 14, 130, 64, 16, 252, 21, 51, 245, 177, 97, 23, 110, 129, 235, 16, 72, 48, 26, 45, 60, 27, 59, 16, 10, 11, 26, 197, 138, 240, 239, 222, 77, 51, 153, 204, 35, 179, 225, 181, 76, 112, 248, 254, 70, 250, 12, 235, 12, 131, 105, 88, 7, 184, 13, 143, 123, 235, 35, 31, 155, 30, 78, 75, 166, 210, 26, 52, 245, 185, 131, 147, 140, 152, 43, 131, 246, 22, 18, 121, 74, 89, 128, 193, 179, 107, 130, 197, 74, 26, 196, 197, 71, 97, 153, 10, 53, 224, 211, 53, 142, 88, 82, 181, 18, 139, 190, 239, 124, 13, 199, 66, 92, 85, 186, 239, 6, 235, 123, 153, 195, 15, 73, 133, 147, 52, 79, 152, 15, 34, 193, 119, 89, 129, 253, 15, 73, 66, 141, 178, 165, 0, 0, 0]
  • 写回答

1条回答 默认 最新

  • lshen01 2023-03-16 10:43
    关注

    参考GPT和自己的思路:

    要将ArrayBuffer解析为json数据,可以使用dart:convert库中的utf8.decode()方法将ArrayBuffer转换为字符串,然后再使用json.decode()方法将字符串转换为json格式数据。在Flutter中的代码可以如下所示:

    import 'dart:convert';
    
    // 接收到的ArrayBuffer数据存储在receivedData中
    ...
    List<int> receivedData = ...;
    String receivedString = utf8.decode(receivedData);
    Map<String, dynamic> receivedJson = json.decode(receivedString);
    ...
    

    其中,receivedJson即为解析出的json数据。注意,在使用utf8.decode()转换ArrayBuffer为字符串时,需要使用utf8编码格式。

    评论

报告相同问题?

悬赏问题

  • ¥15 高德地图点聚合中Marker的位置无法实时更新
  • ¥15 DIFY API Endpoint 问题。
  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办