JavaScript一般的なJSON操作例の分析
7114 ワード
この例では、JavaScriptの一般的なJSON操作について説明します.皆さんの参考にしてください.具体的には以下の通りです.
1、JSON
JSON,JavaScript Object Notation)(JavaScriptオブジェクト表現法)は、テキスト情報を格納・交換する構文であり、JavaScriptに基づくサブセットである.データフォーマットは簡単で、読み書きが容易で、占有帯域幅が小さく、XMLに似ているが、JSONはXMLより小さく、より速く、解析しやすい.
JSONでは変数、関数、オブジェクトインスタンスはサポートされておらず、データのフォーマットにすぎません.データはキー値ペアにあり、データはカンマで区切られています.
2、JSONデータ型
(1)単純データ型:文字列、数値、ブール値、null(JavaScriptのundefinedはサポートされていません).
(2)オブジェクト:無秩序なキー値ペア.
(3)配列:秩序化された値リスト.
3、JSONオブジェクトとJavaScriptオブジェクトの違い
(1)属性は二重引用符でなければなりません(一重引用符ではなく、問題が発生する可能性があります).
(2)末尾にセミコロンがない.
(3)変数はサポートされていません.
4、JSON配列とJavaScript配列の違い
(1)末尾にセミコロンがない.
(2)変数はサポートされていません.
5、シーケンス化
(1)JSON.stringify()メソッド
JavaScriptオブジェクト(JSONオブジェクト)をJSON文字列にシーケンス化する方法.デフォルトでは、出力されるJSON文字列にはスペース文字やインデントは含まれません.JavScriptオブジェクトの関数やプロトタイプオブジェクトは無視されます.
3つのパラメータを受信します.フィルタ、オプションのフィルタ(関数、配列)、オプションの文字列インデント数です.
(2)toJSON()メソッド
シーケンス化されたオブジェクトの順序:1) 2)2番目のパラメータが指定されている場合、この関数フィルタを適用します.入力関数フィルタの値は、ステップ1で返される値です. )ステップ2で返される各値は、対応するシーケンス化される. 4)3番目のパラメータが指定されている場合、対応するフォーマットが実行されます.
(3)eval()メソッド
JSON文字列をJavaScriptオブジェクト(JSONオブジェクト)に解析する最初の方法.
注意:evalメソッドは、非厳格モードでのみ使用でき、
(4)jQuery.parseJSON()メソッド
JSON文字列をJavaScriptオブジェクト(JSONオブジェクト)に解析する第2の方法.
jQueryのjsファイルを先に導入する必要があります.
注意:jQuery 3.0から
(5)JSON.parse()メソッド
JSON文字列をJavaScriptオブジェクト(JSONオブジェクト)に解析する第3の方法.
2つのパラメータを受け取ります:JSON文字列とオプションの関数(キー値ペアごとに呼び出されます).
eg1:
注意:最初のパラメータはJSON文字列なので、JSONオブジェクトは引用符で囲む必要があります.
eg2:
PS:ここでは、関連するjsonオンラインツールをいくつかお勧めします.参考にしてください.
オンラインJSONコード検査、検査、美化、フォーマットツール:http://tools.jb51.net/code/json
JSONオンラインフォーマットツール:http://tools.jb51.net/code/jsonformat
オンラインXML/JSON相互変換ツール:http://tools.jb51.net/code/xmljson
jsonコードオンラインフォーマット/美化/圧縮/編集/変換ツール:http://tools.jb51.net/code/jsoncodeformat
オンラインjson圧縮/エスケープツール:http://tools.jb51.net/code/json_yasuo_trans
JavaScriptに関する詳細については、「JavaScriptにおけるjson操作テクニックのまとめ」、「JavaScriptアルゴリズムテクニックのまとめ」、「JavaScriptエラーとデバッグテクニックのまとめ」、「JavaScriptデータ構造とアルゴリズムテクニックのまとめ」、「JavaScript遍歴アルゴリズムとテクニックのまとめ」、「JavaScript数学演算の使い方のまとめ」を参照してください.
JavaScriptプログラムの設計に役立つことを願っています.
1、JSON
JSON,JavaScript Object Notation)(JavaScriptオブジェクト表現法)は、テキスト情報を格納・交換する構文であり、JavaScriptに基づくサブセットである.データフォーマットは簡単で、読み書きが容易で、占有帯域幅が小さく、XMLに似ているが、JSONはXMLより小さく、より速く、解析しやすい.
JSONでは変数、関数、オブジェクトインスタンスはサポートされておらず、データのフォーマットにすぎません.データはキー値ペアにあり、データはカンマで区切られています.
2、JSONデータ型
(1)単純データ型:文字列、数値、ブール値、null(JavaScriptのundefinedはサポートされていません).
(2)オブジェクト:無秩序なキー値ペア.
(3)配列:秩序化された値リスト.
3、JSONオブジェクトとJavaScriptオブジェクトの違い
(1)属性は二重引用符でなければなりません(一重引用符ではなく、問題が発生する可能性があります).
(2)末尾にセミコロンがない.
(3)変数はサポートされていません.
4、JSON配列とJavaScript配列の違い
(1)末尾にセミコロンがない.
(2)変数はサポートされていません.
5、シーケンス化
(1)JSON.stringify()メソッド
JavaScriptオブジェクト(JSONオブジェクト)をJSON文字列にシーケンス化する方法.デフォルトでは、出力されるJSON文字列にはスペース文字やインデントは含まれません.JavScriptオブジェクトの関数やプロトタイプオブジェクトは無視されます.
3つのパラメータを受信します.フィルタ、オプションのフィルタ(関数、配列)、オプションの文字列インデント数です.
var person = {
name: "Alice",
age: 23,
adult: true,
friends: ["Bruce", "Cindy"]
};
var jsonText1 = JSON.stringify(person);//Date JSON
var jsonText2 = JSON.stringify(person, ["name", "friends"]);//Date JSON
var jsonText3 = JSON.stringify(person, function(key, value) {
switch(key){
case "friends":
return value.join("|");//
case "age":
return value + 1;
case "adult":
return undefined;// undefined
default:
return value;//
}
});
var jsonText4 = JSON.stringify(person, null, 4);
alert(jsonText1);//{"name":"Alice","age":23,"adult":true,"friends":["Bruce", "Cindy"]}
alert(jsonText2);//{"name":"Alice","friends":["Bruce", "Cindy"]}
alert(jsonText3);//{"name":"Alice","age":24,"friends":["Bruce|Cindy"]}
alert(jsonText4);
/*
{
"name":"Alice",
"age":23,
"adult":true,
"friends":[
"Bruce",
"Cindy"
]
}
*/
(2)toJSON()メソッド
stringify()
メソッドにおける2番目のパラメータフィルタの補足として.stringify()
は、特定のオブジェクトのカスタムシーケンス化の要件を満たすことができない場合があり、toJSON
()メソッドをオブジェクトに定義する.シーケンス化されたオブジェクトの順序:
toJSON()
メソッドが存在し、それによって有効な値を取得できる場合、このメソッドが呼び出される.そうでなければ、オブジェクト自体を返します.
var person = {
name: "Alice",
age: 23,
adult: true,
friends: ["Bruce", "Cindy"],
toJSON:function(){
return {"name":"Alice","id":23,"friends":["Bruce", "Cindy"]};
}
};
var jsonText1 = JSON.stringify(person);//Date JSON
var jsonText2 = JSON.stringify(person, ["adult", "id", "friends"]);//Date JSON
var jsonText3 = JSON.stringify(person, function(key, value) {
switch(key){
case "friends":
return value.join("|");//
case "id":
return value - 1;
case "age":
return value + 1;// undefined
default:
return value;//
}
});
var jsonText4 = JSON.stringify(person, null, 4);
alert(jsonText1);//{"name":"Alice", "id":23, "friends":["Bruce", "Cindy"]};
alert(jsonText2);//{"id":23,"friends":["Bruce", "Cindy"]}
alert(jsonText3);//{"name":"Alice","id":22,"friends":["Bruce|Cindy"]}
alert(jsonText4);
/*
{
"name":"Alice",
"id":23,
"friends":[
"Bruce",
"Cindy"
]
}
*/
(3)eval()メソッド
JSON文字列をJavaScriptオブジェクト(JSONオブジェクト)に解析する最初の方法.
var JSText = eval('(' + '{"name":"Alice", "friends":["Bruce", "Cindy"]}' + ')');
alert(JSText.friends);//Bruce,Cindy
注意:evalメソッドは、非厳格モードでのみ使用でき、
use strict
では使用できません.(4)jQuery.parseJSON()メソッド
JSON文字列をJavaScriptオブジェクト(JSONオブジェクト)に解析する第2の方法.
jQueryのjsファイルを先に導入する必要があります.
var JSText = jQuery.parseJSON('{"name":"Alice", "friends":["Bruce", "Cindy"]}');
alert(JSText.friends);//Bruce,Cindy
注意:jQuery 3.0から
jQuery.parseJSON()
メソッドは推奨されません.JSON文字列を解析するには、オリジナルのJSON.parse()
メソッドに変更してください.(5)JSON.parse()メソッド
JSON文字列をJavaScriptオブジェクト(JSONオブジェクト)に解析する第3の方法.
2つのパラメータを受け取ります:JSON文字列とオプションの関数(キー値ペアごとに呼び出されます).
eg1:
var JSText1 = JSON.parse('{"name":"Alice", "friends":["Bruce", "Cindy"]}');
var JSText2 = JSON.parse('{"name":"Alice", "friends":["Bruce", "Cindy"]}', function(key, value) {
if (key == "friends")
return value.join("&");
else
return value;
});
alert(JSText1.friends);//Bruce,Cindy
alert(JSText2.friends);//Bruce&Cindy
注意:最初のパラメータはJSON文字列なので、JSONオブジェクトは引用符で囲む必要があります.
eg2:
var person = {
name: "Alice",
age: 23,
birthday: new Date(1993, 12, 6)// Date
};
var jsonText = JSON.stringify(person);//Date JSON
alert(jsonText);//{"name":"Alice","age":23,"birthday":"1994-01-05T16:00:00:000Z"}
var JSText = JSON.parse(jsonText, function(key, value) {// JSText Date , JSText.birthdat Date
if (key == "birthday")
return new Date(value);
else
return value;
});
alert(JSText.birthday.getFullYear());//1994, Date , getFullYear()
PS:ここでは、関連するjsonオンラインツールをいくつかお勧めします.参考にしてください.
オンラインJSONコード検査、検査、美化、フォーマットツール:http://tools.jb51.net/code/json
JSONオンラインフォーマットツール:http://tools.jb51.net/code/jsonformat
オンラインXML/JSON相互変換ツール:http://tools.jb51.net/code/xmljson
jsonコードオンラインフォーマット/美化/圧縮/編集/変換ツール:http://tools.jb51.net/code/jsoncodeformat
オンラインjson圧縮/エスケープツール:http://tools.jb51.net/code/json_yasuo_trans
JavaScriptに関する詳細については、「JavaScriptにおけるjson操作テクニックのまとめ」、「JavaScriptアルゴリズムテクニックのまとめ」、「JavaScriptエラーとデバッグテクニックのまとめ」、「JavaScriptデータ構造とアルゴリズムテクニックのまとめ」、「JavaScript遍歴アルゴリズムとテクニックのまとめ」、「JavaScript数学演算の使い方のまとめ」を参照してください.
JavaScriptプログラムの設計に役立つことを願っています.