Pull to refresh

Online Json Generator

Reading time2 min
Views46K
imageПриветствую!

Я JavaScript разработчик и последнее время занимаюсь разработкой приложений на Ext JS. Для наглядности интерфейсов, иногда необходимо вбить в них JSON данные. Сперва я писал небольшие скрипты на PHP для генерации необходимых данных, но вскоре это стало забирать все больше времени и я отказался от этого подхода. Потом я начал создавать *.json файлы с данными, но зачастую мне требовалось наличие в них полей с уникальным ID и, по возможности, уникальными данными для красоты. Правда, задавать уникальные значения для полей, особенно в массиве из 100+ объектов занятие не благодарное.

И я решил немного автоматизировать данный процесс.



Я часто пользуюсь сервисом Json Parser Online. Он крайне полезен при разборе ответа от сервера и форматирует JSON в красивое дерево. Но, увы, генерировать его не может. Вдохновленный этим проектом и уставший от рутинной возни я за пару дней написал небольшой сервис Json Generator для генерации JSON.

Реализация

По внешнему виду он подобен Json Parser — уж больно удобным для меня оказался такой дизайн. Сервис написан на чистом JavaScript. Используется только одна сторонняя библиотечка — JSON-js от Дугласа Крокфорда. На странице есть два поля: поле шаблона клонируемого объекта и поле для сгенерированных данных, которые представляются в виде дерева. В поле шаблона JSON должен быть валидным. Сгенерированные данные заключаются в этот объект:
	{
	    "id": 1,
	    "jsonrpc": "2.0",
	    "total": 5, //длина сгенерированного массива
	    "result": [
	        //сгенерированный массив
	    ]
	}
	

Скрипт понимает несколько переменных:
  • int $incr (счет с 1)
  • int $randInt(a,b) (случайное целое число в диапазоне от a до b)
  • boolean $bool (случайный true/false)
  • string $firstName/$lastName (случайное русское имя/фамилия. На данный момент их по 100 подбираемых в случайном порядке)
  • string $company (случайное имя компании из 100)
  • string $phone (случайный российский номер телефона)
  • string $email (случайный адрес почты. Генерируется в зависимости от значений полей объекта, содержащих $name и $company)
  • string $date (случайная дата)
  • array имя поля (количеством элементов массива управляет переменная repeat:int count)

Шаблон можно дополнить любыми полями с любым содержанием — они останутся неизменными. Генератор понимает любой уровень вложенности объектов — для всех полей вложенных объектов, содержащих переменные, будут сгенерированы новые данные.

Панель инструментов по середине состоит из:
  • поле для ввода длины генерируемого массива
  • кнопки старта генерации
  • кнопки сброса полей в изначальный вид
  • кнопки для выделения текста в поле с новыми данными

P.S.

Проект пока сыроват, но мне он хорошо экономит время. В будущем планирую его улучшать и добавлять новые плюшки. Надеюсь, что кто-то найдет этот сервис для себя полезным. Спасибо за внимание!

UPD

Добавил возможность генерации массивов объектов. Их размер контролирует переменная repeat:int count. Все поля в объекте массива могут содержать и другие переменные. Пример можно увидеть в новом шаблоне. Большое спасибо taliban за подсказку :)
Tags:
Hubs:
Total votes 76: ↑71 and ↓5+66
Comments22

Articles