Доступна ли бинарная библиотека JSON Javascript для браузеров? - PullRequest
18 голосов
/ 25 сентября 2011

Для эффективного синтаксического анализа на стороне сервера я ищу решение BSON непосредственно для среды браузера javascript. Идея состоит в том, чтобы использовать все пространство ASCII с помощью двоичных веб-сокетов. Есть предложения?

(Любые предложения nodejs также приветствуются)

Смотрите также: http://bsonspec.org/

Ответы [ 3 ]

11 голосов
/ 16 февраля 2013

Как бы то ни было, похоже, что у команды MongoDB теперь есть поддерживаемый проект Javascript BSON:

https://github.com/mongodb/js-bson

Я не специалист по библиотеке, но проект утверждаетработать как в Node, так и в браузере.Ниже приведен пример с их сайта:

<head>
  <!-- Originally https://raw.github.com/mongodb/js-bson/master/browser_build/bson.js -->
  <!-- But downloaded and hosted locally -->
  <script src="./bson.js"></script>
</head>
<body onload="start();">
<script>
  function start() {
    var BSON = bson().BSON;
    var Long = bson().Long;

    var doc = {
      oid: bson().ObjectID(),
      long: Long.fromNumber(100),
      date: new Date(),
      string: "js-bson sample",
      obj: { 
        string: "Object within an object"
      }
    }
    console.log("doc %o", doc);

    // Serialize a document
    var data = BSON.serialize(doc, false, true, false);
    console.log("data %o", data);

    // De serialize it again
    var doc_2 = BSON.deserialize(data);
    console.log("doc_2 %o", doc_2);
  }
</script>
</body>

Ниже приведены мои результаты в Chrome:

enter image description here

6 голосов
/ 31 января 2012

Это может быть неполным, но цель проекта совпадает с тем, что вы хотите: https://github.com/muhmi/javascript-bson Не похоже, что это кодирует напрямую в типизированные массивы, которые были бы наиболее полезны для отправки через WebSocket.

0 голосов
/ 24 мая 2019

Здесь в 2019 году современные браузеры уже имеют встроенные функции:

btoa("string to be coded on base64 format") 
atob("base64 string to be uncoded")

Как вы можете видеть здесь: https://caniuse.com/#search=btoa Все перечисленные браузеры имеют эту функцию.

...