Есть ли быстрый способ преобразовать объект JavaScript в допустимый JSON в текстовом редакторе? - PullRequest
35 голосов
/ 28 апреля 2011

У меня есть большой старый объект конфигурации.Что-то вроде:

var object = {
  item1: 'value1',
  item2: 1000,
  item3: ['a', 'b', 'c'],
  item4: [1, 2, 3],
  item5: {
    foo: 'bar'
  }
};

... и так далее.Я хочу переписать его как допустимый JSON, чтобы он мог проходить через промежутки, но я не хочу проходить каждую строку в моем файле, добавляя двойные кавычки везде.Конечно, я не против вручную заключить все это в квадратные скобки и изменить первоначальное назначение, чтобы оно было первым свойством, но помимо этого я надеялся, что есть какой-то ресурс, который будет выполнять грубую работу.Пожалуйста, помогите мне, если знаете команду TextMate, трюк с регулярными выражениями, онлайн-конвертер, дружественный робот или что-нибудь еще, что сделает это менее утомительным.

Ответы [ 5 ]

118 голосов
/ 28 апреля 2011
  1. Запустите Firefox / Chrome / Safari
  2. Open Firebug / инструменты разработчика
  3. Скопируйте / вставьте ваш код в консоль.
  4. Затем наберите console.log(JSON.stringify(object)) и вуаля!

    {"item1":"value1","item2":1000,"item3":["a","b","c"],
     "item4":[1,2,3],"item5":{"foo":"bar"}}
    
  5. Скопируйте / вставьте обратно в текстовый редактор.

Для большего контроля над форматированием у меня есть бесплатная онлайн-страница:

http://phrogz.net/JS/NeatJSON

, который позволяет вставлять значения JSON или JS в одно поле и видеть JSON внизу, с множеством ручек и ползунков для настройки их внешнего вида Например, значение JS ["foo","bar",{dogs:42,piggies:0,cats:7},{jimmy:[1,2,3,4,5],jammy:3.14159265358979,hot:"pajammy"}] может быть отформатировано следующим образом (и более):

[
    "foo",                            <- adjustable indentation
    "bar",
    {"dogs":42,"piggies":0,"cats":7}, <- small objects on one line!
    {
        "jimmy":[1,2,3,4,5],          <- small arrays on one line!
        "jammy":3.142,                <- decimal precision!
        "hot":"pajammy"
    }
]
[
  "foo",
  "bar",
  { "cats":7, "dogs":42, "piggies":0 }, <- spaces inside braces!
  {
    "hot":"pajammy",                    <- sort object keys!
    "jammy":3.14159265358979,
    "jimmy":[ 1, 2, 3, 4, 5 ]           <- spaces after commas!
  }
]
[ "foo",                           <- 'short' format puts first value
  "bar",                           <- on same line as opening bracket...
  { "dogs"    : 42,
    "piggies" : 0,                 
    "cats"    : 7 },               <- ...and close bracket with last value!
  { "jimmy" : [ 1, 2, 3, 4, 5 ],
    "jammy" : 3.14159265358979,    <- spaces around colons!
    "hot"   : "pajammy" } ]        <- align object values!

Screenshot of NeatJSON webpage

6 голосов
/ 28 апреля 2011

Почему бы вам не просто ....

... отправить результат JSON.stringify ().Вам не нужно вводить JSON, вам нужно создать его во время выполнения, если я не ошибаюсь, поэтому ...

var mything = { .... } ; 
var jsonRep = JSON.stringify(mything); 

См. Также, Сериализацияобъект в JSON

3 голосов
/ 09 февраля 2019

Другой JS в JSON инструмент для онлайн-конвертации с подсветкой синтаксиса. Javascript to JSON converter

3 голосов
/ 28 апреля 2011

Вы можете использовать консоль Google Chrome (или, возможно, Firebug):

> object
  Object
    item1: "value1"
    item2: 1000
    item3: Array[3]
    item4: Array[3]
    item5: Object
    __proto__: Object
> JSON.stringify(object);
"{"item1":"value1","item2":1000,"item3":["a","b","c"],"item4":[1,2,3],"item5":{"foo":"bar"}}"

Если вам нужна дополнительная документация, посмотрите Использование собственного JSON на MDC.

0 голосов
/ 04 мая 2018

Я сделал для этого инструмент: bit.ly / js2json .Он принимает JavaScript и выводит JSON.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...