JSONデータ
12357 ワード
一、json値のタイプ単純値:文字列、数値、ブール値、nullはundefined(jsonの数値表示:2) をサポートしていません.オブジェクト:順序正しいキーパッドペアのセットは、各キーパッドの値が単純な値であっても良いし、複雑なデータタイプであっても良いです.(Jsonの文字列:「ハローワールド」)json文字列とjavascript文字列の違いは、Jsonはダブルクォーテーションを使用しなければなりません. 配列:配列の値は単純な値であってもよく、複雑なデータタイプであってもよい. 変数、関数、およびオブジェクトのインスタンスはサポートされていません.
二、Json対象とjavascript対象
違い:宣言変数がありません. 終端番号がない() jsonにもダブルクォーテーションを追加します.
三、文字列とjsonオブジェクトの変換
1、JSON.parse().parseは文字列をもとの生javascript値(javascriptオブジェクト)に解析します.各属性名にはダブルクォーテーションが必要です.
2、JSON.strigify(object、selector、retract)オブジェクト、フィルタ(配列または関数)は、インデントを保持します.
JSON.stingify()はjsonオブジェクトを文字列に並べています.(関数、プロトタイプを無視)
フィルタ:配列(配列であれば、配列中の属性を保持します.)を使用してもいいし、関数(関数であれば、2つのパラメータ:属性と属性値を伝えます.)
関数:関数の2つのパラメータ().switchのパラメータは属性名(必須文字列)です.undefinedであれば属性を無視します.
特に注意してください.valueは「javascript高級プログラム設計第三版」の中で私と違います.私の理解に問題があるかもしれませんが、テストしました.結果も順序化された値です.誰が解決できますか?教えてください.(page:566~567)
8、一つの対象がJSON.strigifyに入ったと仮定し、その対象の順序を逐次列化する. にtoJSON()法があり、有効値が取得されると、この方法が起動され、そうでなければデフォルトの順序で並べ替えられます. は、第2のパラメータが提供された場合、この関数フィルタを適用すると、着信関数フィルタの値は第1のステップの戻り値となる. は、第2のステップで返された各値を逐次する. は、第3のパラメータが提供された場合、対応するフォーマットを実行する.
二、Json対象とjavascript対象
違い:
//javascript
var obj = {
name: "liu",
age: 33,
};
// json
{
"name": "liu",
"age": 33,
}
三、文字列とjsonオブジェクトの変換
1、JSON.parse().parseは文字列をもとの生javascript値(javascriptオブジェクト)に解析します.各属性名にはダブルクォーテーションが必要です.
var str = '{"name":"huangxiaojian","age":"23"}';
console.log(JSON.parse(str)); //Object { name: "huangxiaojian", age: "23" }
もう一つのパラメータを受信して、JSON.strigify()を区別するフィルタ関数(フィルタ)を復元関数と呼びます.以下のとおりです var book = {
title: "hello",
author: [ "apple" ],
year: 300,
releaseDate: new Date(2016)
};
var jsonText = JSON.stringify( book )
var bookCopy = JSON.parse( jsonText, function( key, value ) {
if (key == "releaseDate" ) {
return new Date( value );
} else {
return value;
}
} );
console.log( bookCopy.releaseDate.getFullYear() );
上記のコードブックの対象は、releaseDate属性があり、Dateオブジェクトを保存し、序文化された後に有効なJSONデータ文字列になり、その後解析してbook CopyにDateオブジェクトに復元され、release Dateキーの値が発生すると、該当する値に基づいて新しいDateオブジェクトを作成し、その結果としてbook Copy.releaseDate属性に新しいオブジェクトを保存します.2、JSON.strigify(object、selector、retract)オブジェクト、フィルタ(配列または関数)は、インデントを保持します.
JSON.stingify()はjsonオブジェクトを文字列に並べています.(関数、プロトタイプを無視)
var a = {a:1,b:2};
console.log(JSON.stringify(a)); //{"a":1,"b":2}
3、JSON.stringify()の第二パラメータは、フィルタが配列である.フィルタ:配列(配列であれば、配列中の属性を保持します.)を使用してもいいし、関数(関数であれば、2つのパラメータ:属性と属性値を伝えます.)
var person = {
name: "liu",
age: 33,
eat: [ "apple" ],
sex: "man"
}
var jsonText = JSON.stringify( person, ["eat", "age" ] )
console.log( jsonText ) //{"eat":["apple"],"age":33}
4、JSON.strigify()の2番目のパラメータは関数です.関数:関数の2つのパラメータ().switchのパラメータは属性名(必須文字列)です.undefinedであれば属性を無視します.
特に注意してください.valueは「javascript高級プログラム設計第三版」の中で私と違います.私の理解に問題があるかもしれませんが、テストしました.結果も順序化された値です.誰が解決できますか?教えてください.(page:566~567)
var person = {
"name": "liu",
"age": 33,
"eat": [ "apple" ],
"sex": "man"
}
var jsonText = JSON.stringify( person, function( key, value ) {
// console.log( value )
switch("eat") {
case "eat":
return [3,4,5,5,5].join(",");
case "age":
return 33;
case "sex":
return undefined;
default:
return value;
}
} )
console.log( jsonText ) //"3,4,5,5,5"
5、インデント、最大インデントは10です.10を超えると10に変換されます. var person = {
"name": "liu",
"age": 33,
"eat": [ "apple" ],
"sex": "man"
}
var jsonText = JSON.stringify( person, null, 4 )
console.log( jsonText )
///////////////////////// , ////////////////////
{
"name": "liu",
"age": 33,
"eat": [
"apple"
],
"sex": "man"
}
//
var jsonText = JSON.stringify( person, null, "---" )
console.log( jsonText )
///////////////////////// , ////////////////////
{
---"name": "liu",
---"age": 33,
---"eat": [
------"apple"
---],
---"sex": "man"
}
6、toJSON()方法は、自分のjsonデータフォーマットに戻ります. var date = new Date()
console.log( date.toJSON() )
//person json , 。
var person = {
"name": "liu",
"age": 33,
"eat": [ "apple" ],
"sex": "man"
}
console.log( person.toJSON() )
7、オブジェクトにtoJSON()を追加する方法で、文字列を返すと文字列書式、オブジェクトはオブジェクト書式、単一の数値は数値書式です. var person = {
"name": "liu",
"age": 33,
"eat": [ "apple" ],
"sex": "man",
"toJSON": function () {
return this.age
}
}
console.log( person.toJSON() ) // 33
toJSON()はフィルターの補充ができます.8、一つの対象がJSON.strigifyに入ったと仮定し、その対象の順序を逐次列化する.