JSON.stringify 構文例の説明_json

WBOY
WBOYオリジナル
2016-05-16 17:55:171196ブラウズ

私はJavaScriptには長い間慣れ親しんできたのですが、正直、このような使い方を見るのは初めてで、とても恥ずかしいです。そこで、庭師さんの参考になればと思い、インターネットで書き方の情報を探し、実例をいくつか書きました。
関数: この関数の機能は主にオブジェクトをシリアル化するためのものです。
シリアル化という言葉にアレルギーを持つ人もいるかもしれませんが、私の理解は非常に簡単です。つまり、元のオブジェクト型を文字列型(正確にはjson型)に変換します。それはとても簡単です。たとえば、クラスがある場合は、このメソッドを通じてそれを対応する json 型に変換できます。とてもシンプルです。
続きを読んでください。
構文:
JSON.stringify(value [, replacer] [, space])
value: は必須フィールドです。配列やクラスなど、入力したオブジェクトです。
replacer: これはオプションです。 2 つの方法に分かれており、1 つはメソッド、もう 1 つは配列です。
状況 1: まずデータについて話しましょう。その後の実験を通じて、それが最初の実験と関連していることがわかります。一般に、シリアル化された結果はキーと値のペアで表されます。
例:
名前:"lan"、年齢:25
このフォーム。
したがって、この形式では、最初の値に 2 番目の値が存在する場合、2 番目の値がキーとして使用され、存在しない場合は、最初の値が値として表されます。 。 [少し抽象的ではありませんか? 私もそう思いますが、実験を見てください。 。はぁ。 】
ケース 2: それがメソッドの場合、それは非常に単純です。つまり、シリアル化された各オブジェクト (それぞれが 1 つであることを忘れないでください) を処理のためにメソッドに渡します。
スペース: 区切り文字として使用されるものを理解するのは簡単です。
1. 省略した場合、表示される値には区切り文字がありません。直接出力します。
2. 数値の場合、インデントする文字数を定義します。もちろん、10 より大きい場合、最大値は 10 です。
3. エスケープ文字の場合、 " " などは復帰を意味し、1 行に 1 つの復帰が含まれます。
4. 単なる文字列の場合は、値を出力するときにこれらの文字列を各行に追加するだけです。もちろん、最大長も 10 文字です。
例から始めます。
1. パラメーターが 1 つだけの場合:

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

varstudent = new Object();
student.name = "Lanny";
student.age = "25"; .location = "中国";
var json = JSON.stringify(student);


結果は次のとおりです。 🎜>JSON.stringify の役割を疑う人もいるかもしれません。この機能が不要な場合はどうなるでしょうか。コードは次のようになります。



コードをコピー
コードは次のとおりです。 var Student = new Object() ; student.name = "ラニー"; student.location = "中国"; .stringify(student );
alert(student);


結果おめでとうございます:




私はあなたに嘘をついていません、そのまま続けてください。
2. 2 番目のパラメータが存在し、まだ関数である場合

コードをコピーします
コードは次のとおりです。

var students = new Array(); students[0] = "Lanny"; students[1] = "dong"; ] = "愛しています"; var json = JSON.stringify(students,switchUpper); 関数 switchUpper(key, value) { return value.toString().toUpperCase(); >}
alert(json);

//var json = JSON.stringify(students, function (key,value) {

//return value.toString() .toUpperCase ();

//});


どちらも同じですが、書き方が少し異なります。 。
結果は次のようになります:




3. 2 番目のパラメータが存在し、2 番目のパラメータが関数ではなく配列の場合。

3.1 【誤解】第一引数が配列で第二引数も配列の場合、第一引数の値のみが表示されます。
例:


コードをコピー

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


var students = new Array();
students[0] = "ラニー";
students[1] = "dong"
students[2] = "愛しています";
var stu = new Array();
stu[0] = "1";
stu[1] = "2";
var json = JSON.stringify(students,stu );
alert(json);

結果は次のようになります:

2 番目は無視されますが、1 番目はシリアル化されます。

3.2 最初のオブジェクトがオブジェクト (ここで言及されているオブジェクトは C# の新しいオブジェクトに似ています) の場合、2 番目のオブジェクトは配列です。

次に、2 番目の値が最初の値に存在する場合は、2 番目の値をキーとして使用し、最初の値を表す値として使用します。
Copy code コードは次のとおりです:

varstudent = new Object();
student.qq = "5485891512"; = "ラニー";

var stu = new Array();
stu[0] = "qq"; ";
stu[2] = "Hi";//この生徒オブジェクトは存在しません。

var json = JSON.stringify(student,stu);
alert(json)


得られた結果は次のとおりです。 >stu[2] = "Hi"; この Hi は最初のものでは見つからないため、表示されません。
4. 3 番目のパラメータ

4.1. 省略した場合、表示される値には区切り文字がありません。
に直接出力します。 例:




コードをコピーします

コードは次のとおりです: var Student = new Object(); student.qq = "5485891512"; student.age = 25; stu = 新しい配列( ); stu[0] = "qq";
stu[2] = "こんにちは"; json = JSON.stringify (student,stu);
alert(json);


数値の場合、出力は次のようになります。インデントを定義します。数文字。もちろん 10 より大きい場合、最大値は 10 です。




コードをコピー


コード

varstudent = new Object();
student.qq = "5485891512";
student.name = "Lanny"; 25;
var stu = new Array();
stu[0] = "年齢"; ";
var json = JSON.stringify(student,stu,100);//ここで 100 に注意してください alert(json); すると、次のようになります。 :
空 10 文字を開きます。

4.3. 復帰を示す「 」などのエスケープ文字の場合、1 行に 1 つの復帰が含まれます。

同じことです。

4.4. 単なる文字列の場合は、値を出力するときにこれらの文字列を各行に追加するだけです。もちろん、最大長も 10 文字です。

var json = JSON.stringify(student,stu,“HaiKou”);//
の場合



それだけです。おやすみ。
記事の出典 http://www.cnblogs.com/damonlan/
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。