私は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 の役割を疑う人もいるかもしれません。この機能が不要な場合はどうなるでしょうか。コードは次のようになります。
コードをコピー
alert(student);
結果おめでとうございます:
私はあなたに嘘をついていません、そのまま続けてください。
2. 2 番目のパラメータが存在し、まだ関数である場合
コードをコピーします
コードは次のとおりです。
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 番目の値をキーとして使用し、最初の値を表す値として使用します。
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. 省略した場合、表示される値には区切り文字がありません。
に直接出力します。 例:
コードをコピーします
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/