JavaScript 개체를 문자열로 변환하려면 어떻게 해야 합니까?
예:
var o = {a:1, b:2} console.log(o) console.log('Item: ' + o)
출력:
개체 { a=1, b=2} // 읽기 좋은 출력:)
항목: [Object Object] // 내용물을 알 수 없습니다: (
질문에 대한 답변
개체 내의 변수 집합을 JSON 문자열로 변환하는 사용을 권장합니다.
var obj = {
name: 'myObj' };
JSON.stringify(obj);
대부분의 최신 브라우저는 기본적으로 이 방법을 지원하지만 그렇지 않은 브라우저의 경우 JS 버전을 포함할 수 있습니다.
javascript String() 함수를 사용합니다.
String(yourobject); //returns [object Object]
JSON.stringify(yourobject)
개체를 문자열로 변환하려면 다음과 같은 고유한 메서드를 사용해야 합니다.
function objToString (obj) {
var str = '';
for (var p in obj) {
if (Object.prototype.hasOwnProperty.call(obj, p)) {
str += p + '::' + obj[p] + 'n';
}
}
return str; }
실제로 위의 내용은 일반적인 접근법일 뿐입니다.http://phpjs.org/functions/var_export:578 또는 http://phpjs.org/functions/var_dump:604 등의 방법을 사용할 수 있습니다.
또는 메서드(오브젝트의 속성으로서 기능)를 사용하지 않는 경우는, JSON.stringify()라고 하는 새로운 스탠다드를 사용할 수 있습니다(그러나 오래된 브라우저에서는 실장되어 있지 않습니다).그러나 개체가 JSON에 직렬화할 수 없는 함수나 기타 속성을 사용하는 경우에는 이 기능이 작동하지 않습니다.
업데이트:
보다 현대적인 솔루션은 다음과 같습니다.
function objToString (obj) {
let str = '';
for (const [p, val] of Object.entries(obj)) {
str += `${p}::${val}n`;
}
return str; }
또는 다음과 같이 입력합니다.
function objToString (obj) {
return Object.entries(obj).reduce((str, [p, val]) => {
return `${str}${p}::${val}n`;
}, ''); }
심플하게console
, you can just use a comma instead of a+
.그+
는 오브젝트를 문자열로 변환하려고 하는데 콤마는 오브젝트를 콘솔에 개별적으로 표시합니다.
예:
var o = {a:1, b:2}; console.log(o); console.log('Item: ' + o); console.log('Item: ', o);
// :)
출력:
Object { a=1, b=2}
// useful Item: [object Object]
// not useful Item:
Object {a: 1, b: 2}
// Best of both worlds! :)
참고 자료: https://developer.mozilla.org/en-US/docs/Web/API/Console.log
편집 이 답변은 Firefox 일부 버전에서만 작동하므로 사용하지 마십시오.다른 브라우저는 지원하지 않습니다.Gary Chambers 솔루션을 사용합니다.
toSource()는 JSON으로 기술되는 함수입니다.
var object = {}; object.first = "test"; object.second = "test2"; alert(object.toSource());