JavaScript では、文字列とオブジェクトは 2 つの異なるタイプであり、それらに格納されるデータも大きく異なります。 Web 開発では、サーバーから取得した JSON データなど、文字列をオブジェクト配列に変換する必要がある状況によく遭遇します。この記事では、文字列をオブジェクト配列に変換するいくつかの方法を紹介します。
方法 1: JSON.parse() を使用する
JavaScript では、JSON.parse() メソッドを使用して、JSON 形式の文字列をオブジェクトまたは配列に変換できます。 JSON.parse() メソッドの原理は、JSON 文字列を解析して JavaScript オブジェクトまたは配列にすることです。
たとえば、次のような JSON 文字列があります:
var jsonString = '[{"name":"John","age":30,"city":"New York"},{"name":"Jane","age":25,"city":"Los Angeles"},{"name":"Bob","age":40,"city":"Chicago"}]';
JSON.parse() メソッドを使用して、それをオブジェクトの配列に変換します:
var jsonObjectArray = JSON.parse(jsonString);
ループ ステートメントで配列を反復処理し、各オブジェクトの属性を出力します。
for(var i=0; i<jsonObjectArray.length; i++){ console.log("Name: "+jsonObjectArray[i].name+", Age: "+jsonObjectArray[i].age+", City: "+jsonObjectArray[i].city); }
方法 2: eval() を使用します
eval() は、受信文字列を処理できる JavaScript の関数です。パラメータを JavaScript として指定すると、コードが実行されます。したがって、eval() 関数を使用して、JSON 形式の文字列をオブジェクトまたは配列に変換できます。
たとえば、次の JSON 文字列があります:
var jsonString = '[{"name":"John","age":30,"city":"New York"},{"name":"Jane","age":25,"city":"Los Angeles"},{"name":"Bob","age":40,"city":"Chicago"}]';
eval() 関数を使用して、それをオブジェクトの配列に変換します:
var jsonObjectArray = eval("("+jsonString+")");
同様に、次のように使用できます。配列を反復処理し、各オブジェクトの属性を出力するループ ステートメント:
for(var i=0; i<jsonObjectArray.length; i++){ console.log("Name: "+jsonObjectArray[i].name+", Age: "+jsonObjectArray[i].age+", City: "+jsonObjectArray[i].city); }
eval() 関数にはセキュリティ リスクがある可能性があるため、運用環境での使用は推奨されないことに注意してください。 JSON.parse() メソッドを使用する必要があります。
方法 3: 文字列の分割と置換を使用する
古い方法では、文字列の分割と置換を使用して文字列をオブジェクト配列に変換します。
たとえば、次のような JSON 文字列があります:
var jsonString = '[{"name":"John","age":30,"city":"New York"},{"name":"Jane","age":25,"city":"Los Angeles"},{"name":"Bob","age":40,"city":"Chicago"}]';
まず、文字列内のオブジェクトを区切るのに使用されるコンマをセミコロンに置き換え、中括弧を角括弧に置き換える必要があります。有効な JavaScript 配列宣言を取得するには:
jsonString = jsonString.replace(/}/g, '},'); jsonString = jsonString.replace(/,$/, ''); jsonString = jsonString.replace(/{/g, '['); jsonString = jsonString.replace(/}/g, '}]');
次に、 eval() 関数を使用してそれをオブジェクト配列に変換します:
var jsonObjectArray = eval(jsonString);
同様に、ループ ステートメントを使用して配列を走査することができます。属性:
for(var i=0; i<jsonObjectArray.length; i++){ console.log("Name: "+jsonObjectArray[i].name+", Age: "+jsonObjectArray[i].age+", City: "+jsonObjectArray[i].city); }
このメソッドは比較的単純な JSON 形式にのみ適していることに注意してください。深くネストされた JSON 形式の場合、このメソッドは失敗します。
概要
上記は、文字列をオブジェクト配列に変換するいくつかの方法です。実際の開発では、JSON 形式の文字列をオブジェクトまたは配列に変換する JSON.parse() メソッドを使用することをお勧めします。このメソッドは効率性と安全性が高く、言語自体の仕様に準拠しています。古いバージョンのブラウザをサポートする必要がある場合は、 eval() 関数の使用または文字列の分割と置換を検討してください。
以上が文字列をオブジェクト配列JavaScriptに変換するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。