Object.prototype.toString()を使ってオブジェクトを"[object Object]"形式の文字列に変換する
JavaScriptでオブジェクトを文字列に変換する方法
JSON.stringify()を使う
最も一般的な方法は、JSON.stringify()
を使うことです。これは、オブジェクトをJSON形式の文字列に変換します。
const obj = {
name: "John Doe",
age: 30,
address: {
city: "Tokyo",
country: "Japan",
},
};
const jsonStr = JSON.stringify(obj);
console.log(jsonStr); // {"name":"John Doe","age":30,"address":{"city":"Tokyo","country":"Japan"}}
JSON.stringify()
は、オブジェクトのすべてのプロパティと値をJSON形式で文字列に変換します。
オプション
replacer
関数を使うことで、特定のプロパティのみを変換したり、変換後の文字列をカスタマイズしたりすることができます。spaces
オプションを使うことで、出力されたJSON文字列を綺麗に整形することができます。
詳細は JSON.stringify() - JavaScript | MDN: https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify を参照してください。
Object.prototype.toString()を使う
簡単な方法は、Object.prototype.toString()
を使うことです。これは、オブジェクトを"[object Object]"
形式の文字列に変換します。
const obj = {
name: "John Doe",
age: 30,
};
const str = obj.toString();
console.log(str); // [object Object]
ただし、この方法はあまり一般的ではありません。
独自の方法を使う
高度な方法としては、独自の方法でオブジェクトを文字列に変換することもできます。
const obj = {
name: "John Doe",
age: 30,
};
function objToString(obj) {
let str = "";
for (const prop in obj) {
str += `${prop}: ${obj[prop]}\n`;
}
return str;
}
const str = objToString(obj);
console.log(str);
// name: John Doe
// age: 30
この方法は、オブジェクトの内容をより細かく制御したい場合に便利です。
JavaScriptでオブジェクトを文字列に変換するには、いくつかの方法があります。
- 最も一般的な方法は、
JSON.stringify()
を使うことです。 - 簡単な方法は、
Object.prototype.toString()
を使うことです。
それぞれの方法のメリットとデメリットを理解して、状況に応じて使い分けることが重要です。
JSON.stringify()を使う
const obj = {
name: "John Doe",
age: 30,
address: {
city: "Tokyo",
country: "Japan",
},
};
const jsonStr = JSON.stringify(obj);
console.log(jsonStr); // {"name":"John Doe","age":30,"address":{"city":"Tokyo","country":"Japan"}}
replacer
関数を使う
function replacer(key, value) {
if (key === "age") {
return value + 1;
}
return value;
}
const jsonStr = JSON.stringify(obj, replacer);
console.log(jsonStr); // {"name":"John Doe","age":31,"address":{"city":"Tokyo","country":"Japan"}}
spaces
オプションを使う
const jsonStr = JSON.stringify(obj, null, 2);
console.log(jsonStr);
{
"name": "John Doe",
"age": 30,
"address": {
"city": "Tokyo",
"country": "Japan"
}
}
Object.prototype.toString()を使う
const obj = {
name: "John Doe",
age: 30,
};
const str = obj.toString();
console.log(str); // [object Object]
独自の方法を使う
const obj = {
name: "John Doe",
age: 30,
};
function objToString(obj) {
let str = "";
for (const prop in obj) {
str += `${prop}: ${obj[prop]}\n`;
}
return str;
}
const str = objToString(obj);
console.log(str);
// name: John Doe
// age: 30
オブジェクトを文字列に変換するその他の方法
Object.keys()とArray.prototype.join()を使う
Object.keys()
を使ってオブジェクトのプロパティ名の配列を取得し、Array.prototype.join()
を使ってカンマ区切りの文字列に変換します。
const obj = {
name: "John Doe",
age: 30,
};
const props = Object.keys(obj);
const str = props.join(", ");
console.log(str); // name, age
テンプレートリテラルを使って、オブジェクトのプロパティと値を直接文字列に埋め込むことができます。
const obj = {
name: "John Doe",
age: 30,
};
const str = `
名前: ${obj.name}
年齢: ${obj.age}
`;
console.log(str);
ライブラリを使う
Lodashなどのライブラリには、オブジェクトを文字列に変換する便利な関数があります。
const _ = require("lodash");
const obj = {
name: "John Doe",
age: 30,
};
const str = _.toString(obj);
console.log(str); // [object Object]
オブジェクトを文字列に変換するには、さまざまな方法があります。それぞれの方法のメリットとデメリットを理解して、状況に応じて使い分けることが重要です。
javascript string object