JSON文字列とJSONオブジェクトの相互変換例を詳しく解説

高洛峰
リリース: 2017-01-18 10:03:42
オリジナル
1472 人が閲覧しました

この記事の例では、JSON 文字列と JSON オブジェクトを相互に変換する方法を説明します。参考のために皆さんと共有してください。詳細は次のとおりです:

json文字列をjsonオブジェクトに変換するメソッド。データ送信プロセス中、JSON はテキスト、つまり文字列の形式で送信されますが、JS は JSON オブジェクトを操作するため、JSON オブジェクトと JSON 文字列間の変換が鍵となります

例:

JSON 文字列:

var str = '{ "name": "name1","sex": "m" }';
ログイン後にコピー

JSON オブジェクト:

var obj = { "name": "name1", "sex": "w" };
ログイン後にコピー

1. JSON 文字列を JSON オブジェクトに変換します

上記の str1 を使用するには、まず次のメソッドを使用して JSON オブジェクトに変換する必要があります:

var obj = eval('(' + str + ')');
//由JSON字符串转换为JSON对象,必须把文本包围在括号中,这样才能避免语法错误: "(" + str+ ")
ログイン後にコピー

または

var obj = $.parseJSON(str);
// 将JSON字符串转化为JSON对象 (jQuery)
ログイン後にコピー

または

var obj= str.parseJSON();
//由JSON字符串转换为JSON对象
ログイン後にコピー

または

var obj= JSON.parse(str);
//由JSON字符串转换为JSON对象
ログイン後にコピー

次に、次のように読むことができます:

Alert(obj.name);
Alert(obj.sex);
ログイン後にコピー

特記事項: obj が元々 JSON オブジェクトである場合は、 eval() 関数を使用して(複数の変換であっても) または JSON オブジェクトを変換しますが、parseJSON() 関数の使用後に問題が発生します (構文例外がスローされます)。

2. toJSONString() またはグローバル メソッド JSON.stringify() を使用して、JSON オブジェクトを JSON 文字列に変換できます。

例:

var str=obj.toJSONString();
//将JSON对象转化为JSON字符
ログイン後にコピー

または

var str=JSON.stringify(obj);
//将JSON对象转化为JSON字符
alert(str);
ログイン後にコピー

概要:

また、型変換には一般に 2 つのタイプがあることも上で説明しました。1 つは JavaScript に付属のパーサーで、もう 1 つは JSON です。パーサーでは、JavaScript パーサーはあらゆる JavaScript コードをコンパイルして実行できます。そのため、JSON パーサーは JSON テキストのみを認識し、スクリプトをコンパイルしないため、安全性が高く、JSON パーサーの方が高速です。

上記のメソッドのうち、eval() 関数が js に付属していることを除いて、他のメソッドはすべて json.js パッケージからのものです。新しいバージョンの JSON は API を変更し、JSON.stringify() メソッドと JSON.parse() メソッドの両方を JavaScript の組み込みオブジェクトに挿入し、前者は Object.toJSONString() になり、後者は String になります。 。 toJSONString() メソッドと parseJSON() メソッドが見つからないというメッセージが表示された場合は、json パッケージのバージョンが低すぎることを意味します。

この記事が JavaScript プログラミングのすべての人に役立つことを願っています。

JSON 文字列と JSON オブジェクト間の相互変換の詳細な例については、PHP 中国語 Web サイトの関連記事に注目してください。

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