Json解析と序列化について

4107 ワード

最初から話す:
まず、何がJsonですか?データ表示形式、JSON:JavaScript Object Notationオブジェクト表示法
Json文法規則:
データはキーのペアにあります.
データはコンマで区切られます.
かっこでオブジェクトを保存
大かっこ保存配列
このように:
{ "firstName":"John" , "lastName":"Doe" }
このように:
{
"employees": [
{ "firstName":"John" , "lastName":"Doe" },
{ "firstName":"Anna" , "lastName":"Smith" },
{ "firstName":"Peter" , "lastName":"Jones" }
]
}
またはこのようにします
var employees = [
{ "firstName":"Bill" , "lastName":"Gates" },
{ "firstName":"George" , "lastName":"Bush" },
{ "firstName":"Thomas" , "lastName": "Carter" }
];
相手の順序は何ですか?
専門用語はこのように解釈される:
                        。            ,        。         ,            。
対象の順序化とは、オブジェクトの状態を文字列に変換することです.
JSONオブジェクト
エヴァ関数はJsonをJavascriptオブジェクトに変換できることを知っています.Js内に建てられたeavl関数はJsonデータで原生のJavaScriptオブジェクトを生成します.
これは初期のJson解析法で、erjsonオブジェクトは二つの方法があります.
この二つの方法は、jsオブジェクトをjson文字列に並べて、json文字列を解析します.
この二つの関数を詳しく説明します.
一、JSONプロローグ
Json.stringify()
作用:元の値、オブジェクト、行列の順行列化
文法:JSON.strigify(value[,replacer][,space])
パラメータ:
        value:JSON文字列の元の値、オブジェクトまたは配列に変換します.
   replacer:オプションパラメータ、配列または関数
space:オプションパラメータ、数値または文字列
返します.JSON形式の文字列は、valueの値を表します.同時にreplaccerのフィルタリングを通して、spaceによってフォーマットされました.

 	var myMes= {
        "name": "ys",
        "age": 12
    };

    console.log(typeof myMes);//Object

    var jsonText = JSON.stringify(myMes);
    console.log(typeof jsonText);//String
 	
成功将
Jsonオブジェクトはjson文字列に変換されます.
1、Jsonデータフィルタリング 
a.フィルタパラメータが配列である場合、JSON.strigify()の結果には配列中の属性のみが含まれます.
 var myMes = {
        "name": "ys",
        "age": 12,
        "like": "drink",
        "nationality": "China"
    };
    /*    ,   name age*/
    var jsonText = JSON.stringify(myMes, ["name", "age"]);
    console.log(jsonText);         //{"name": "ys", "age": 12}
b.2番目のパラメータが関数である場合、着信関数は2つのパラメータを受信し、必要に応じて処理します.
 var myMes= {
        "name": "ys",
        "age": 12,
        "like": "drink",
        "nationality": "China"
    };
    var jsonText = JSON.stringify(myMes, function(key, value){
        switch(key){
            case "name": 
                return "     ";
            default: 
                return value;
        }
    }, 4);
    console.log(jsonText);
結果は図の通りです
2.文字列のインデント
第三のパラメータは文字列の字下げを実現するもので、数字の数はいくつかのスペースに字下げすることを表します.
var myMes= {
        "name": "ys",
        "age": 12,
        "like": "drink",
        "nationality": "China"
    };
    var jsonText = JSON.stringify(myMes, ["name", "age"], 4);
    console.log(jsonText);//{"name": "ys", "age": 12}
の結果は、図の通りである.
3番目のパラメータを追加しないと効果があります.
二、JSON解析
1.作用
JSON形式を解析する文字列
2.文法
JSON.parse(s[,reviver])
3.パラメータ
解析する文字列
reviver,オプションパラメータ,解析値を変換するためのオプション関数
4.戻り
オブジェクト、配列、元の値です.この戻り値はsから解析されます.
一例を見てください.
 var myMes= {
        "name": "ys",
        "age": 12
    }; 
    console.log(typeof myMes);//Object
    //    json   
    var jsonText = JSON.stringify(myMes);
    console.log(typeof jsonText);//String

    var jsonObj = JSON.parse(jsonText);
    console.log(typeof jsonObj);//Object
Json文字列をJsonオブジェクトに変換する役割です. 
タイプ変更
:String->Object
JSON.parse()方法も他のパラメータを受信します.このパラメータは関数です.JSON.string()が受信したフィルタ関数を区別するために、この関数は還元関数と呼ばれています.実際には、2つの関数のキー値は同じです.彼らは2つのパラメータを受け入れて、いずれも1つの値を返す必要があります.
いくつかのはっきり書かれたブログリンクを提供します.
Json解析とプロローグ
Json解析とプロローグ
リンクを開く