JSON オブジェクトと strings_jquery 間の解析と変換

WBOY
リリース: 2016-05-16 17:08:36
オリジナル
831 人が閲覧しました

開発プロセス中に、少数のパラメータをフロントエンドとバックエンドに転送したい場合は、ajax の data 関数を直接使用し、それを json 形式で渡し、バックグラウンドリクエストを使用することができます。複数のパラメータを渡す必要があるため、背景

受け付ける際に複数のリクエストをリクエストするのは面倒ですが、この時クラスかコレクションの形で渡す必要があります。


例: フロントエンドは JSON オブジェクトをクラス形式で渡します:

var jsonUserInfo = "{"TUserName":"" userName "","TInterest":"" Interest "","TSex":"" sex "","TCity":"" city "","TDetail ":"" 詳細 ""}";

jsonUserInfo がエスケープ記号なしで記述されている場合、var jsonArrayFinal = JSON.stringify(jsonArray); を渡す前に変換する必要があります。

コードをコピー コードは次のとおりです:

$.ajax(
type : "post",
url: "ReceiveHandler1.ashx",
データ: { userInfo: jsonUserInfo, flag: "123456", key: "654321" },
DataType: "text",
🎜>

フロントエンドが複数のクラス形式の JSON 配列を渡す場合、つまりコレクション型:

例:
[{"name":"a"},{"name","b"},{"name","c"}] を渡すことはできません。この場合、JSON.stringify を使用する必要があります。配列オブジェクトを文字列に変換し、それを AJAX 経由で渡します。
たとえば、a を文字列に変換し、b を JSON オブジェクトに変換したいとします。

var a={"名前":"トム","性別":"男性","年齢":"24"};

var b='{"名前":"マイク","性別":"女性","年齢":"29"}';

Firefox、chrome、opera、safari、ie9、ie8 などの高度なブラウザでは、JSON オブジェクトの stringify() メソッドと parse() メソッドを直接使用できます。

JSON.stringify(obj) は JSON を文字列に変換します。 JSON.parse(string) は文字列を JSON 形式に変換します。
上記の変換は次のように記述できます:

var a={"name":"tom","sex":"male","age":"24"};

var b= '{ "名前":"マイク","性別":"女","年齢":"29"}'; var aToStr=JSON.stringify(a); (b );

alert(typeof(aToStr)) //string

alert(typeof(bToObj));

JSON.stringify()


ie8 (互換モード)、ie7 および ie6 には JSON オブジェクトがありませんが、
http://www.json.org/js.html
は json.js を提供するため、ie8 (互換モード) 、IE7 と IE6 は JSON オブジェクトとその stringify() メソッドと parse() メソッドをサポートできます。この js は https://github.com/douglascrockford/JSON-js で入手できます。現在は通常 json2.js を使用しています。

ie8 (互換モード)、ie7 および ie6 は eval() を使用して文字列を JSON オブジェクトに変換できます。

var c='{"名前":"マイク","性別":"女","年齢":"29"}'

var cToObj=eval("(" c ")"; ;

アラート(typeof(cToObj));

jQuery には、文字列を JSON 形式に変換するメソッド jQuery.parseJSON(json) もあり、標準形式の JSON 文字列を受け入れ、解析された JavaScript (JSON) オブジェクトを返します。もちろん、興味があれば、jQuery 拡張機能を自分でカプセル化することもできます。 jQuery.stringifyJSON(obj) は JSON を文字列に変換します。

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