データのJSタイプ(オブジェクト・タイプ - シングル組み込みオブジェクト - JSON)

  JavaScriptを使用して、JSON(Javaスクリプトオブジェクト表記)は、データを格納および送信するためのフォーマット、典型的には、ページにデータを渡すために使用されるサーバです。JSON形式は、上からテキストのみが、任意のプログラミング言語で読むことができるテキスト、及び伝送データのフォーマット(JSON文字列が、長いオブジェクト等である同様の形式のオブジェクト、にJSの文字列)の通りであります説明は、我々は次のような知識を見ることができます

  JSONルール:を有する{}引用符のペアのデータ、または[]囲まれ、キーと値のペア(キー:値)で表現される各データについて、鍵は二重引用符内に配置されなければならなく、単一引用符各データは、カンマで区切られました。

  データの後端と対話するためのJS:JSON使用

  JSON属性値のみ:10進数値、文字列(二重引用符)、ブール値、ヌル、アレイ、オブジェクトJSONの要求に沿って(含意が関数でない、NaNで、+( - )無限大と不定)。

< スクリプト> 
    // JSONアレイフォーマット
    するvar ARR = [ ' ダヴィナ' ' エイミー' ' リサ' ]; // ストア列に配列
    にconsole.log(ARR [ 2 ]); // リサ

    VAR のARR1 = [ ARR、
        { 
            " 名前" " dvaina " " 年齢" 18である
        }、
        { 
            " 名前"" リサ" " 年齢" 20 
        }] 
    はconsole.log(typeof演算ARR1、ARR1 [ 2 ] .nameの)。// オブジェクトリサ
</ スクリプト>

  JSONオブジェクトメソッド:()を文字列化と解析()。

  JSON形式の文字列にオブジェクトのJSON.stringify()メソッドオブジェクトがキーに引用されていないだけでなく、変換することができる場合は、変換結果が自動的に引用符を与えます。

  状況のパラメータ:

< スクリプト> 

    VAR OBJ1 = [ 1 2 3 ]。
    VAR OBJ2 = { " 名前" ' dvaina ' " 年齢" ' 20 ' }。
    VAR OBJ3 = {名:' リサ' " 年齢" ' 20 ' }。
    console.log(JSON.stringify(OBJ1))。  // [1,2,3]
    console.log(JSON.stringify(OBJ2)); // { "名前": "dvaina"、 "年齢" "20は"} 
    はconsole.log(JSON.stringify(OBJ3)); // { "名前": 「リサ」、「年齢」:「20は」} 

    // 単語の列に数学的なオブジェクトに変換する文字列化()メソッドは、オブジェクト
    にconsole.log(JSON.stringify(数学を)); // {} 
    はconsole.log(JSON .stringify(新しい新しいブール(真の))); // trueに
    // 文字列化()メソッドの変換文字列の日付にオブジェクト
    はconsole.log(JSON.stringify(新新A日付())); // 「2019-12-09T06 :22:34.685Z "

    // 変換、またはオブジェクトメンバは、未定義の関数メンバである場合は無視する
    // アレイのメンバーが定義されていない場合、または関数は、値がNULLに変換され
    OBJ4 = {関数(){}、
        B:不定、
        C:[ 関数(){}、不定] 
    } 
    にconsole.log(JSON.stringify(OBJ4))。// { "C":[NULL、NULL]} 
</ スクリプト>

  第2のパラメータは、関数または配列であってもよいです

    <script>
        //如果第二个参数是函数,序列化过程中的每个属性都会被这个函数转化和处理
        var str = {
            "name": "davina",
            "age": 18,
            "phone": 11111111
        }
        var jsonStr = JSON.stringify(str, function (key, value) {
            if (key == "phone") {
                return "(0713)" + value;
            } else if (typeof value === "age") {
                return value + 2;
            } else {
                return value;
            }
        })
        console.log(jsonStr)  //{"name":"davina","age":18,"phone":"(0713)11111111"}
        //如果是数组,那只有包含在这个数组中的属性才会被序列化到json字符串中
        var str1 = {
            "name": "davina",
            "age": 18,
            "phone": 11111111
        }
        var jsonStr1=JSON.stringify(str1,["name","age","phone","address"]);
        console.log(jsonStr1); //{"name":"davina","age":18,"phone":11111111}
     //如果是null,那和空一样
    </script>

  第三个参数用于美化输出——不建议用,忽略。

  JSON.parse()将字符串转化成对象,如果传入的不是有效JSON格式,会报错。JSON.parse()也可以接收一个函数参数,在每个键值对上调用,这个函数被称为还原函数,该函数接收两个参数,一个键和一个值。如果还原函数返回undefined,那就要从结果中删除相应的键,如果返回其它值,则将值插入到结果中。

    <script>
        console.log(JSON.parse('{}'));  //{}
        console.log(JSON.parse('true'));  //true
        var o = JSON.parse('{"name":"davina"}');
        console.log(o.name); //dvaina
        //JSON.parse()也可以接收一个函数参数,在每一个键值对调用,这个函数被称为还原函数,这个函数接收两个参数,一个键和一个值,返回一个值

        var book = {
            "name": "js",
            "date": new Date(2019, 9, 1)
        }
        var jsonStr = JSON.stringify(book);
        
        console.log(jsonStr)//{"name":"js","date":"2019-09-30T16:00:00.000Z"}

        var bookName = JSON.parse(jsonStr, function (key, value) {
            if (key == 'date') {
                return new Date(value);
            }
            return value;
        })
        console.log(bookName.date.getFullYear());//2019
    </script>

  eval()类似于JSON.parse()方法,可以将json字符串转换成json对象,但是它也可以执行不符合json格式的代码,所以尽量少用或不用。

 

おすすめ

転載: www.cnblogs.com/davina123/p/11929103.html