У меня есть сервер Sinatra, который потоковым образом возвращает несколько объектов JSON из базы данных. Объекты будут выглядеть так:
{"a": 1, "b": 2, "c": 3}
{"a": 4, "b": 5, "c": 6}
...
но это недействительно JSON. Я могу добавить взлома в обработку событий Sinatra (вручную вставляя отсутствующие разделители массива), чтобы сделать ответ похожим:
[
{"a": 1, "b": 2, "c": 3}
, {"a": 4, "b": 5, "c": 6}
]
который теперь действителен JSON, но этот метод неэлегантен. Есть ли способ сделать это на стороне клиента? В принципе, я хочу, чтобы функция JavaScript читала строку и потребляла действительный объект JSON, а затем возвращала мне объект JSON и оставшуюся часть строки, итеративно вызываясь до тех пор, пока не будет уничтожена вся строка.