JavaScript学習ノート20:標準対象-JSON

6887 ワード

JavaScriptチュートリアル転送ゲート
JSONは実際にJavaScriptのサブセットです.JSONでは、このようなデータ型がいくつかあります.
  • number:JavaScriptのnumberと完全に一致します.
  • boolean:JavaScriptのtrueまたはfalseです.
  • string:JavaScriptのstringです.
  • null:JavaScriptのnullです.
  • array:JavaScriptのArray表現--[];
  • object:JavaScriptの{ ... }表現です.

  • シーケンス化
    var xiaoming = {
        name: '  ',
        age: 14,
        gender: true,
        height: 1.65,
        grade: null,
        'middle-school': '\"W3C\" Middle School',
        skills: ['JavaScript', 'Java', 'Python', 'Lisp']
    };
    
    JSON.stringify(xiaoming); // '{"name":"  ","age":14,"gender":true,"height":1.65,"grade":null,"middle-school":"\"W3C\" Middle School","skills":["JavaScript","Java","Python","Lisp"]}'

    出力をフォーマット(インデント)するには、次の手順に従います.
    JSON.stringify(xiaoming, null, '  ');
    
    //   
    {
      "name": "  ",
      "age": 14,
      "gender": true,
      "height": 1.65,
      "grade": null,
      "middle-school": "\"W3C\" Middle School",
      "skills": [
        "JavaScript",
        "Java",
        "Python",
        "Lisp"
      ]
    }

    2番目のパラメータは、Arrayに入力して、オブジェクトのキー値をフィルタする方法を制御することができる.
    JSON.stringify(xiaoming, ['name', 'skills'], '  ');
    
    //   
    {
      "name": "  ",
      "skills": [
        "JavaScript",
        "Java",
        "Python",
        "Lisp"
      ]
    }

    オブジェクトの各キー値ペアが関数によって先に処理されるように、関数を入力することもできます.
    function convert(key, value) {
        if (typeof value === 'string') {
            return value.toUpperCase();
        }
        return value;
    }
    
    JSON.stringify(xiaoming, convert, '  ');
    
    //   
    {
      "name": "  ",
      "age": 14,
      "gender": true,
      "height": 1.65,
      "grade": null,
      "middle-school": "\"W3C\" MIDDLE SCHOOL",
      "skills": [
        "JAVASCRIPT",
        "JAVA",
        "PYTHON",
        "LISP"
      ]
    }

    逆シーケンス化JSON.parse()でJavaScriptオブジェクトに直接変更します.
    JSON.parse('[1,2,3,true]'); // [1, 2, 3, true]
    JSON.parse('{"name":"  ","age":14}'); // Object {name: '  ', age: 14}
    JSON.parse('true'); // true
    JSON.parse('123.45'); // 123.45
    JSON.parse()は、解析された属性を変換するための関数を受信することもできる.
    JSON.parse('{"name":"  ","age":14}', function (key, value) {
        //  number * 2:
        if (key === 'name') {
            return value + '  ';
        }
        return value;
    }); // Object {name: '    ', age: 14}

    データ構造
    JSONの基礎データ構造は2種類しかありません.[]表示配列{}表示対象
    JSONデータの表現形式は以上の2種類のデータ構造とそれらの任意の組み合わせをサポートすることができ、配列にはオブジェクトを含めることができ、オブジェクトには配列を含めることができ、使用上非常に柔軟である.