[javascript] JSON 파싱 된 개체를 인쇄 하시겠습니까?

JSON을 사용하여 파싱 된 자바 스크립트 객체가 있습니다. JSON.parse이제 객체를 인쇄하여 디버깅 할 수 있습니다 (함수가 잘못되었습니다). 내가 다음을 할 때 …

for (property in obj) {
    output += property + ': ' + obj[property]+'; ';
}
console.log(output);

여러 [object Object]가 나열되어 있습니다. 내용을보기 위해 이것을 어떻게 인쇄 할까 궁금합니다.



답변

대부분의 디버거 콘솔은 객체 표시를 직접 지원합니다. 그냥 사용

console.log(obj);

디버거에 따라 콘솔의 객체가 축소 된 트리로 표시 될 가능성이 높습니다. 트리를 열고 개체를 검사 할 수 있습니다.


답변

JSON의 의미를 알고 있습니까? 자바 스크립트 객체 표기법 . 객체에 적합한 형식을 만듭니다.

JSON.stringify(obj) 객체의 문자열 표현을 다시 제공합니다.


답변

console.dir()대신 시도하십시오console.log()

console.dir(obj);

MDN 은 다음 console.dir()에 의해 지원 된다고 말합니다 .

  • FF8 +
  • IE9 +
  • 오페라
  • 크롬
  • 원정 여행

답변

들여 쓰기가있는 예쁘고 여러 줄짜리 JSON을 원한다면 JSON.stringify세 번째 인수와 함께 사용할 수 있습니다 .

JSON.stringify(value[, replacer[, space]])

예를 들면 다음과 같습니다.

var obj = {a:1,b:2,c:{d:3, e:4}};

JSON.stringify(obj, null, "    ");

또는

JSON.stringify(obj, null, 4);

다음과 같은 결과가 나타납니다.

"{
    "a": 1,
    "b": 2,
    "c": {
        "d": 3,
        "e": 4
    }
}"

브라우저 console.log(obj)에서는 더 잘 작동하지만 쉘 콘솔 (node.js)에서는 그렇지 않습니다.


답변

JSON 구문 분석 된 객체 만 인쇄

console.log( JSON.stringify(data, null, " ") );

하면 출력이 매우 명확합니다.


답변

문자열 형식을 사용하십시오.

console.log("%s %O", "My Object", obj);

Chrome에는 다음과 같은 형식 지정자가 있습니다.

  • %s 값을 문자열로 형식화합니다.
  • %d또는 %i값을 정수로 형식화합니다.
  • %f 값을 부동 소수점 값으로 형식화합니다.
  • %o 요소 패널에서와 같이 값을 확장 가능한 DOM 요소로 형식화합니다.
  • %O 값을 확장 가능한 JavaScript 객체로 형식화합니다.
  • %c 제공하는 CSS 스타일에 따라 출력 문자열을 형식화합니다.

Firefox 에는 비슷한 옵션 이있는 String Substition 도 있습니다.

  • %oJavaScript 객체에 대한 하이퍼 링크를 출력합니다. 링크를 클릭하면 관리자가 열립니다.
  • %d또는 %i정수를 출력합니다. 포맷은 아직 지원되지 않습니다.
  • %s 문자열을 출력합니다.
  • %f부동 소수점 값을 출력합니다. 포맷은 아직 지원되지 않습니다.

Safari에는 printf 스타일 포맷터가 있습니다

  • %d또는 %i정수
  • %[0.N]f N 자릿수의 부동 소수점 값
  • %o 목적
  • %s

답변

좋고 간단합니다 :

console.log("object: %O", obj)