Javascript / Chrome - Как скопировать объект из инспектора webkit в виде кода


493

Я делаю заявление console.log в моем javascript для регистрации объекта javascript. Мне интересно, есть ли способ, как только это будет сделано, - скопировать этот объект в виде кода JavaScript. Я пытаюсь преобразовать объект, созданный с помощью ajax, для анализа потока XML в статический объект javascript, чтобы файл мог работать локально, без сервера. Я включил скриншот объекта в окно Chrome Inspector, чтобы вы могли видеть, что я пытаюсь сделать.введите описание изображения здесь


1
Попробуйте использовать Firefox и опцию .toSource (). Это проще
chepe263

Ответы:


1250
  1. Щелкните правой кнопкой мыши объект в консоли Chrome и выберите Store as Global Variableв контекстном меню. Он вернет что-то вроде temp1имени переменной.

  2. В Chrome также есть copy()метод, поэтому copy(temp1)в консоли следует скопировать этот объект в буфер обмена.

Скопируйте объект Javascript в Chrome DevTools

Примечание по рекурсивным объектам: если вы пытаетесь скопировать рекурсивный объект, вы получите [object Object]. Выход состоит в том copy(JSON.stringify(temp1)), что объект будет полностью скопирован в буфер обмена как допустимый JSON, поэтому вы сможете отформатировать его по своему усмотрению, используя один из множества ресурсов.


3
вернуть неопределенное в chrome Версия 49.0.2623.87 (64-разрядная версия)? почему>?
Пардип Джейн

10
@PardeepJain - это ожидается от метода copy (), потому что возвращать нечего. Данные должны быть в вашем буфере обмена.
Карл

35
Это просто дает [object Object]мне.
Ullallulloo

1
@Ullallulloo попробуйте выйти из JSON.stringify следующим образом: stackoverflow.com/a/4293047/622287
kevnk

3
это работает, только если у вас есть мелкий объект JS, если у вас есть рекурсивный глубокий объект, тогда вы получите [Object Object] - что и ожидается
Marwen Trabelsi

62

Попробуй JSON.stringify(). Скопируйте полученную строку. Не работает с объектами, содержащими циклические ссылки.


7
Я не понимаю, как это будет работать, если вы не измените код, который его регистрирует.
iConnor

16
Я получаюTypeError: Converting circular structure to JSON
Тони Брасунас

40

Вы можете скопировать объект в буфер обмена с помощью copy (JSON.stringify (Object_Name)); в консоли.

Например: - Скопируйте и вставьте приведенный ниже код в вашу консоль и нажмите ENTER. Теперь попробуйте вставить (CTRL + V для Windows или CMD + V для Mac) куда-нибудь еще, и вы получите {"name": "Daniel", "age": 25}

var profile = {
    name: "Daniel",
    age: 25
};

copy(JSON.stringify(profile));

14
Не работает с узлами DOM, окном или любым другим круглым объектом
Carles Alcolea

Безусловно, самое простое решение для большого, но простого объекта.
Хершизи

самое простое решение
Anandhukrishna VR

26

Теперь вы можете выполнить это в Chrome, щелкнув правой кнопкой мыши объект и выбрав «Сохранить как глобальную переменную»: http://www.youtube.com/watch?v=qALFiTlVWdg

введите описание изображения здесь


2
Начиная с версии 39.0.2171.95, опция «Сохранить как глобальную переменную» недоступна при проверке устройств Android с помощью Chrome.
Вальтер Роман

1
@ Дэвид Кэлхун, я голосовал за твой ответ. Похоже, ваш ответ был опубликован 12 июня 2014 года, а принятый был 5 августа 2014 года, в основном с учетом того, что у вас было. Я должен признать, что он упоминает temp1, где ваш ответ показывает только его в вашем видео, поэтому, возможно, именно поэтому был принят другой ответ. С наилучшими пожеланиями.
PatS

13

Выполните следующие шаги:

  1. Выведите объект с помощью console.log из вашего кода, например, так: console.log (myObject)
  2. Щелкните правой кнопкой мыши по объекту и выберите «Сохранить как глобальный объект». На этом этапе Chrome напечатает имя переменной. Давайте предположим, что это называется "temp1".
  3. В консоли введите: JSON.stringify(temp1).
  4. На этом этапе вы увидите весь объект JSON в виде строки, которую вы можете скопировать / вставить.
  5. Вы можете использовать онлайн-инструменты, такие как http://www.jsoneditoronline.org/, чтобы предварительно настроить вашу строку на этом этапе.

Шаг с JSON.stringify (temp1) может повлиять на длительное выполнение, если объект большой.
героин

@JoeTidee У меня была та же проблема, но я настроил debuggerоператор и затем извлек свою переменную непосредственно из консоли в точке останова.
Тони Брасунас

11

Если вы отправили объект поверх запроса, вы можете скопировать его с вкладки Chrome -> Network.

Запрос полезной нагрузки -> Просмотр источника

введите описание изображения здесь

введите описание изображения здесь


2
После копирования проанализированной полезной нагрузки вы можете отформатировать json с сайта jsonformatter.curiousconcept.com .
Мухаммед Хасан

0

Использование «Хранить как глобальная переменная» работает, но оно получает только конечный экземпляр объекта, а не момент регистрации объекта (поскольку вы, вероятно, захотите сравнить изменения с объектом по мере их возникновения). Чтобы получить объект в его точный момент времени, я использую это ...

function logObject(object) {
    console.info(JSON.stringify(object).replace(/,/g, ",\n"));
}

Назови это так ...

logObject(puzzle);

Вы можете удалить регулярное выражение .replace (/./ g, ", \ n"), если в ваших данных есть запятая.


0

Так,. У меня была эта проблема. кроме меня получил [объект объекта]

Я уверен, что вы могли бы сделать это с помощью рекурсии, но это сработало для меня:

Вот что я сделал в своей консоли:

var object_that_is_not_shallow = $("all_obects_with_this_class_name");
var str = '';
object_that_is_not_shallow.map(function(_,e){
    str += $(e).html();
});
copy(str);

Затем вставьте в свой редактор.


0

Это должно помочь структурировать глубокие объекты, исключая рекурсивные объекты Windowи Nodeобъекты.

function stringifyObject(e) {
  const obj = {};
  for (let k in e) {
    obj[k] = e[k];
  }

  return JSON.stringify(obj, (k, v) => {
    if (v instanceof Node) return 'Node';
    if (v instanceof Window) return 'Window';
    return v;
  }, ' ');
}

0

Щелкните правой кнопкой мыши данные, которые вы хотите сохранить

  • Во-первых, щелкните правой кнопкой мыши на данных, которые вы хотите сохранить -> выберите «Сохранить как глобальную переменную», и новая временная переменная будет выглядеть так: (переменная temp3): в консоли появится новая временная переменная
  • Во-вторых, используйте команду copy (temp_variable_name), как изображение: введите здесь описание изображения. После этого вы можете вставлять данные в любое место. надеюсь, что полезно /

0

Добавьте это к своей консоли и выполните

copy(JSON.stringify(foo));

Это копирует ваш JSON в буфер обмена

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.