JSON editor

Jan. 9th, 2015 07:44 am
ermouth: (ang)
[personal profile] ermouth

У меня тут в качестве побочного инструмента разработки возникла потребность в нормальном JSON-редакторе. Это то-есть такого, который:


  • распознаёт таймстампы и показывает их как даты

  • понимает стрингифаенные функции

  • определяет, что строка – base64 и её можно показать/скачать

  • прощает ошибки набора JSON (пропуск кавычек), но генерит корректный JSON

  • понимает JS-выражения, которые сразу вычисляет

  • позволяет размножать/переставлять ветки

  • позволяет каждую ветку поправить сорцом

  • даёт экстендить один JSON другим.

Ещё два важных момента – это должен быть компонент, который можно как контрол инициализировать и он должен уметь показать переменную в памяти – при этом напрямую мутировать-редактировать её, не портя и не разрывая связи.

У меня такой редактор написался внезапно, и такой хорошенький, что я вот его обвесил всякими сэмпл-доками и выложил как online tool. Он умеет доки хранить в локалсторидже есчо, так что всё помнит.

Снимок экрана 2015-01-09 в 7.26.06

http://cloudwall.me/etc/json-editor.html

Любопытно, что эта штука – “рекурсивное” приложение. Оно при раскрытии веток юзером инстанцирует само себя как дочки. Я сначала думал что это довольно дорого в плане памяти и CPU, но неожиданно оно норм даже на айпаде полетело. Хотя прожорливое, конечно.

Date: 2015-01-09 05:11 pm (UTC)
From: [identity profile] tonsky.livejournal.com
А прикольно! В GUI какого-нибудь couchdb или другой документной json-базы смотрелось бы самое то

Date: 2015-01-09 06:14 pm (UTC)
From: [identity profile] ermouth.livejournal.com
Оно будет в CouchDB, хотя не для неё писалось.

Там в демке появится кнопка "сделать редактор для КучДБ". Она будет выдавать документ, который нужно сохранить в БД (просто копипастой) – и в БД появится новый редактор.

Profile

ermouth: (Default)
ermouth

November 2021

S M T W T F S
 123456
78910111213
14151617181920
21 222324252627
282930    

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Feb. 1st, 2026 08:39 am
Powered by Dreamwidth Studios