goJsonLength function

int goJsonLength(
  1. String json
)

与 Go 的 encoding/json 输出相同的字节数:jsonEncode 的结果中 U+2028、U+2029、<、>、& 在 Go 中被转义为 6 个字节 (《sdk-web/2.功能概述文档》第 6.5、19 节)。

Implementation

int goJsonLength(String json) {
  var extra = 0;
  for (var i = 0; i < json.length; i++) {
    final c = json.codeUnitAt(i);
    if (c == 0x2028 || c == 0x2029) extra += 3; // UTF-8 的 3 字节换成 6 字节
  }
  return utf8Length(json) + extra;
}