ホームページ > ウェブフロントエンド > フロントエンドQ&A > 文字列をオブジェクト配列JavaScriptに変換する

文字列をオブジェクト配列JavaScriptに変換する

王林
リリース: 2023-05-12 19:51:36
オリジナル
3215 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート