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.