JSON詳細

2592 ワード

一、JSON定義
1、JSON(JavaScript Object Notation)はライト級のデータ交換形式で、読みやすく、編纂しやすいです.同時に機械解析と生成も簡単です.簡単に言えば、JSONは、JavaScriptオブジェクトに表示されているデータのセットを文字列に変換し、関数間でこの文字列を簡単に伝達したり、非同期アプリケーションで文字列をWebクライアントからサーバ端末プログラムに転送したりすることができる.この文字列はちょっと変わっていますが、JavaScriptは説明しやすく、JSONは「名前/値ペア」より複雑な構造を表しています.
2、JSON文法はJavaScriptオブジェクトが文法を表すサブセットです.データは名前/値ペア、データはカンマ区切り、括弧保存オブジェクト、四角い括弧保存配列です.3、JSON値は、数字(整数または浮動小数点)、文字列(二重引用符)、論理値(trueまたはfalse)、配列(四角括弧内)、オブジェクト(括弧内)、nullとすることができます.
二、JSONの例
1、例えば:
{
    "name":"  ",
    "age":16,
    "msg":["a","b"],
    "regex": "^http://.*"
};
2、JSON.parseはjson形式の文字列をJsonオブジェクトに変換するものです.
var str ='{"name":"  ","age":16,"msg":["a","b"],"regex": "^http://.*"}';
var json = JSON.parse(str);
console.log("name:" + json.name);
console.log("msgLen:" + json.msg.length);

//   
// name:  
// msgLen:2
備考:単引用符は{}の外に書いてあります.各属性名は二重引用符を使用しなければなりません.
3、JSON.strigifyは、JSONオブジェクトをJson形式に変換した文字列です.
var json = {"name":"  ","age":16,"msg":["a","b"],"regex": "^http://.*"};
var str = JSON.stringify(json);
console.log("json:" + str);
console.log("jsonLen:" + str.length);

//   
// json:{"name":"  ","age":16,"msg":["a","b"],"regex":"^http://.*"}
// jsonLen:60
備考:JSON.parseとJSON.strigifyは、IE 8およびそれ以上のバージョンをサポートします.
4、JSONを行列に変換します.
function jsonToArray(obj){
    var r = {key:[],value:[]};
    for(var k in obj){
        if(!obj.hasOwnProperty(k)){
            continue;
        }
        r.key.push(k);
        r.value.push(obj[k]);
    }
    return r;
}

var json = {"name":"  ","age":16,"msg":["a","b"],"regex": "^http://.*"};
var arrJson = jsonToArray(json);
console.log("regexKEY:" + arrJson.key[3]);
console.log("regexVALUE:" + arrJson.value[3]);
console.log("KEYLen:" + arrJson.key.length);

//   
// regexKEY: regex
// regexVALUE: ^http://.*
// KEYLen:4
IEの低バージョンについては、プラグインJson公式サイトを使用することができます.http://www.json.org/json-zh.html
IEの低バージョンのブラウザの使用率はますます少なくなり、互換性のあるIEの低いスクリプトを単独で持ち出して、互換性のあるコードを取り出すことを提案します.IEの注釈でjsプラグインを導入するかどうかを判断します.jsプラグインは標準名称と一致する方がいいです.例えば、低いバージョンでJSONという変数を導入する方法もあります.JSON.parseなどもあります.以前の互換性コード処理方式を改善し、IEの部分の全てをW 3 C標準イベントハンドリング関数に変換し、単独でIEに導入することができる.個人的見解