1. ホーム
  2. javascript

[解決済み] オブジェクトの文字列をJSONに変換する

2022-04-24 21:02:20

質問

JavaScript(またはjQuery)を使って、オブジェクトを記述した文字列をJSON文字列に変換するにはどうすればよいですか?

例 これを変換する ( NOT を有効なJSON文字列とする)。

var str = "{ hello: 'world', places: ['Africa', 'America', 'Asia', 'Australia'] }"

をこの中に入れてください。

str = '{ "hello": "world", "places": ["Africa", "America", "Asia", "Australia"] }'

を使うのは避けたいところです。 eval() 可能であれば

解決方法は?

信頼できるソースからの文字列である場合 を使用することができます。 eval では JSON.stringify という結果になります。このように

var str = "{ hello: 'world', places: ['Africa', 'America', 'Asia', 'Australia'] }";
var json = JSON.stringify(eval("(" + str + ")"));

ただし eval で囲まれていないと、オブジェクトではなくブロックとしてパースされます。

また、質問の下のコメントにあるように、オブジェクトを最初から有効なJSONでエンコードして、パース、エンコード、そしておそらくパースすることを避ける方がずっと良いと思います。 また . HTMLはシングルクォートの属性をサポートしています(文字列の中にシングルクォートがある場合は必ずHTMLエンコードしてください)。