[JS] 29. Object, JSON

5734 ワード

0)Arrayのその他の機能



1)対象


Javaの集合に似た概念

  • list → array
    map→駄目みたい?代替案としてobjectを使用します.
    set→es 6サポート

  • JavaScriptではオブジェクトはサポートされていません.
    オブジェクト向けのカプセル化、隠匿性、継承はサポートされていません.
    しかし、すべては客体です.
    言葉のトリックで真似したのです.
    es 6は支援を開始したが、それらの小細工は消えず、ずっと使われていた.
    だから両方知っておく必要があります.

  • 突然objectを作成します.
    試験にはkor属性はありませんが、定義はなく、直接使用します.
    プロパティはobjectで空で、korプロパティがあります.
    (Expand Objectとなります.)

  • やってみる
  • 1)
            var exam = new Object();
            exam.kor = 30;
            exam.eng = 70;
            console.log(exam.kor+exam.eng);
    100が出てきた
    大文字と小文字をよく区別する.△よく観察する.
  • 属性名は逆記号(-)は使用できません.["속성이름"]で表すことができます.

  • 2)
            var exam = new Object();
            exam.kor = 30;
            exam.eng = 70;
            console.log(exam.kor+exam["eng"]);
    結果はやはり100でした.

  • 値を削除する方法(鍵の削除方法)
    ->delete:オブジェクトではなく属性を消去するためにのみ使用します.
  • 3)
            var exam = new Object();
            exam.kor = 30;
            exam.eng = 70;
            console.log(exam);
    
            delete exam.eng 
            console.log(exam);

    2番目のdeleteではeng値が消失することがわかります.

    2) JSON (Javascript object notation)


  • JAvascriptの値はマルチリファレンス変数であり、変数はマルチリファレンス変数である.(基本型はありません.)
    手書きで書くと左側と同じです.
    JSONは内部に箱を作っていますが、どう書いてあるのか分かりません.

    空の配列は、objectがそのように表現されます.var exam = new Object();の代わりにvar exam = {};を使用します.
    これからはこの方法を使いましょう.

  • 鍵(id)は無条件に文字(string)である.

  • JSONでは、文字の原則は二重引用符です.(省略可能)→問題になる場合があります.
    オブジェクト内の情報を伝え、保存したい場合は、このような表現が簡潔です.

  • アレイによる表示
            var notices = [
                {id:1, title:"hello json"},
                {id:2, title:"hi json"},
                {id:3, title:"json is..."}
            ];
    
            console.log(notices[1].title);
            console.log(notices[1]["title"]);
    出力結果は両方ともhijsonです.

  • もともと順番がないので、別の場所に送ると順番があります.

  • その順番をカンマで区切ってCSVと言います.
    CSVを重ねてはいけません.

  • XMLはタグを用いてタグ付けを行い,タグの概念を重ねる.
    オーバーラップモデルは直感的で、数が不定です.
    より多くの記号を費やす必要はありません.

  • XML、CSVのメリット→JSON
    (簡潔CSV、強大複雑XML→簡潔強大JSONが欠けている)
  • 3) eval()

  • evalはvalueを実行します.
  • 1)
            var value = "var x = 30;";
            console.log(x);
    x変数がなければ、もちろんエラーが発生します.
    2)
            var value = "var x = 30;";
            eval(value);
            console.log(x);
    evalを書くのは間違いありません.
  • の内容を見つけたいなら、そうすべきだ.

  • 1)
            var value = "{'id':1, title:'hello'}";
            eval(value);
            console.log(value.title);

  • オブジェクトを含む変数はありません.
    実行コードにコンテナがありません.
    そのためエラーが発生しました.
  • 2)
            var value = "{'id':1, title:'hello'}";
            eval("var data="+value+";");
            console.log(data.title);
  • の完全な文章を完成させるには、間違いはありません.

  • 3)
            var value = "{'id':1, title:'hello'}";
            var data = eval("("+value")");
            console.log(data.title);
  • にもこの方法が存在する.
  • 4) JSON parser

  • JSON解析器:JSON文字列のみを対象化するJSON専用ツール

  • 1)
            var value = "{'id':1, title:'hello'}";
            var data = JSON.parse(value);
            
            console.log(data.title);
  • javascript構文でのみエラーは発生しません.
  •         var value = '{"id":1, "title":"hello"}';
            var data = JSON.parse(value);
    
            console.log(data.title);
  • 原則の引用符を使用して、衝突を防ぐために外部を単一引用符に変更します.

  • これらの不便な点を解決してくれるやつがいます.
  • JSON.stringgify():オブジェクト化されたやつを文字列に変換します.
  • 1)
            var json = JSON.stringify(data);
            console.log(json);
            console.log(typeof json);

    データとタイプがstringであることを確認します.
    2)
            var json = JSON.stringify([1,2,3,{id:1, writer:'abc'}]);
            console.log(json);
            console.log(typeof json);
    やはり結果は[1,2,3{id:1,writer:「abc'}」,stringであった.