1. JSON 構文ルール:
JSON はテキスト情報を保存および交換するための構文です
開発プロセスでは、他のシステムとデータを交換する必要があることがよくありますが、データ交換の形式には XML や JSON などが含まれます。
JSON は軽量のデータ形式であるため、XML よりも効率的ですが、XML には多くのタグが必要であり、間違いなくネットワーク トラフィックを占有します。
1. JSON には 2 つの形式があります
1 つはオブジェクト形式です。
{"name":"JSON","address":"Beijing Xicheng District","age":25}//JSON オブジェクト形式の文字列
もう 1 つは配列オブジェクトです
[{"name":"JSON","address":"北京西城区","年齢":25}]//データオブジェクト形式
上記 2 つの形式から、オブジェクト形式と配列オブジェクト形式の違いは、オブジェクト形式に基づいて [] が追加されるだけであることがわかりますが、具体的な構造を見ると、すべて同じであることがわかります。英語では、キーと値のペアの形式で表示され、カンマ (,) で区切られます。
この形式は、フロント エンドとバック エンドの間でデータを転送する場合にもよく使用されます。バック エンドは、json 形式の文字列を返します。フロント エンドは、js の JSON.parse() メソッドを使用して、JSON 文字列を json オブジェクトに解析します。 、フロントエンドで使用するためにトラバーサルに進みます。
JavaScript オブジェクトは構文のサブセットを表します。
-
データは名前と値のペアになっています
-
カンマで区切られたデータ
-
中括弧はオブジェクトを保持します
-
角括弧は配列を保持します
2. JSON の名前と値のペア
-
JSON データの記述形式は、名前と値のペアです。
-
名前と値のペアの組み合わせでは、名前が最初に (二重引用符で囲み) 書かれ、その後に値のペアが (これも二重引用符で囲んで) コロンで区切って書かれます。
-
"名":"ジョン"
3. JSON値
値は次のとおりです。
-
数値 (整数または浮動小数点)
-
文字列 (二重引用符で囲みます)
-
論理値 (true または false)
-
配列 (角括弧内)
-
オブジェクト (中括弧内)
JSON は通常、オブジェクトと配列で構成され、オブジェクトはオブジェクト メソッドを使用して操作されます。配列は配列メソッドを使用して操作されます。
配列
-
var ourcountry=[["北京"],["上海"],["合肥","蕪湖","蚌埠"]]; // 配列アラート(ourcountry[2][1])
;
JSON配列
json 配列。角括弧 [ ] を使用しますが、配列内の項目も json キーと値のペア形式です。
JSONオブジェクト
json オブジェクトは、{key:value} のように中かっこ { } を使用した値に対応するキーです。
var status_process = { "name5" : '休眠期', "name1" : '播種期', "name2" : '苗期', "name3" : '成長期', "name4" : '収穫期' } (status_process["name5"]); alert(status_process.name5); // 両方ともアイドル期間JSON 文字列
いわゆる json 文字列とは、文字列変数の値が json と同じ形式であるが、json オブジェクトではないことを意味します。次に例を示します。
var s1="{";
var s2 = " 'name5' : '休眠期', 'name1' : '播種期','name2' : '苗期','name3' : '生育期', 'name4' : '収穫期間'";
var s3="}";
var status_process=s1+s2+s3;
JSON配列のトラバーサル
PackJson = [
{"name":"zhang", "password":"123"},
{"name":"li", "password":"456"}
];
for(var p in PackJson){// json 配列を走査するときは、インデックスとして p を書き込みます
alert(packJson[p].name + " " + PackJson[p].password);
}
// または
for(var i = 0; i < PackJson.length; i++) { alert(packJson[i].name + " " + PackJson[i].password); } JSON 配列の操作
1. var josnArry=[]; を定義します。
2. jsonArry.push(jsonObj); を追加します。
3. 削除 delete jsonArry[0]; splice(index,length):
4. アレイをループする
a.jQuery
$.each(jsonArry,function(index,item){
var userId=item.userId;
});
b.一般方式
for(var i=0;i<jsonArry.length;i++)
{ var userId=jsonArry[i].userId; c.特別なメソッド
for(var item in jsonArry)
{
var userId=jsonArry[item].userId;//注: ここでの項目は配列項目ではなく、配列項目のインデックスです
}
JSON オブジェクトのトラバーサル
myJson = {"name":"ji", "password":"123"};
for(var p in myJson){
//json オブジェクトの各キーと値のペアをスキャンします。p はキーです alert(p + " " + myJson[p]); }
文字列と json オブジェクトおよび json オブジェクト配列の間の変換
var jsonStr = "{\"userId\":\"001\"}"; // json オブジェクト文字列 var
jsonArryStr = "[{\"userId\":\" 001\ "},{\"userId\":\"002\"}]"; // json 配列文字列
var jsonObj = JSON.parse(jsonStr); // json オブジェクトに変換された文字列
var jsonArry = JSON.parse(jsonArryStr) ; // 文字列を JSON 配列に変換します
var jsonStr = JSON.stringify(jsonObj); // JSON オブジェクトを文字列に変換します
var jsonArryStr=JSON.stringify(jsonArry);// JSON 配列を文字列に変換します
alert (jsonStr);
alert(jsonArryStr) );
アラート(jsonObj.userId);
アラート(jsonArry[0]['userId']);
JSON.stringify(obj) JSON オブジェクトを文字列に変換します。
JSON.parse(string) 文字列を JSON オブジェクト形式に変換します。
json文字列をjsonオブジェクトに変換する
-
// jquery的方法
-
var jsonObj = $.parseJSON(jsonStr)
-
//js 的方法
-
var jsonObj = JSON.parse(jsonStr)
jsonオブジェクトをjson文字列に変換します
-
//js方法
-
var jsonStr1 = JSON.stringify(jsonObj)
注: length メソッドを使用できるのは、配列または json 配列のみです。json オブジェクトの長さメソッドが無効です。
Map マップと json はどちらもキーと値のペアですが、map のキーと値のペアは等号で区切られ、json のキーと値のペアはコロンで区切られる点が異なります。実際、json は特別な形式のマップです。