JSON (JavaScript Object Notation)
18927 ワード
JSON (JavaScript Object Notation)
データの格納または転送に使用される軽量レベルのデータ交換規格
特長
通常、サーバとクライアント間のコミュニケーションで使用されます.
JSONフォーマットは
null, number, string, array, object, boolean
を提供します.JSON形式はJavaScriptオブジェクトと同様に
key/value
形式で構成され、キー値または文字列は常に二重引用符("")でマークされます.JSON.stringify()
let student = {
name: 'John',
age: 30,
isAdmin: false,
courses: ['html', 'css', 'js'],
wife: null
};
let json = JSON.stringify(student);
alert(typeof json); // 문자열이네요!
alert(json);
/* JSON으로 인코딩된 객체:
{
"name": "John",
"age": 30,
"isAdmin": false,
"courses": ["html", "css", "js"],
"wife": null
}
*/
JSON.stringgify(student)が呼び出されると、studentは文字列に置き換えられます.
これらの変更された文字列をJSON符号化されたオブジェクト、シリアル処理されたオブジェクト、文字列変換されたオブジェクト、および集約されたオブジェクトと呼ぶ.
オブジェクトを文字列に変換してからのみ、ネットワークを介して転送またはリポジトリに格納できます.
JSON.stringgify呼び出し時に無視されるProperty
かんすうせってい
構成部品プロファイル(鍵付きプロファイル)
値は未定義のプロパティ
JSON.stringgifyプロパティ
let json = JSON.stringify(value[, replacer, space])
value
:エンコードする値replacer
:JSONにエンコードしたいPropertyを含む配列.またはマッピング関数(key、value)space
:フォーマットを変更する空白文字数replacer
パラメータ
replacer
に配列が追加されると、配列の値は解析され、許容プロファイルとして追加される.つまり、これだけ返します!私の意味です.replacer値が存在しないかnullの場合、すべての値が返されます.
// 두번 째 인자로 배열을 넣어주면, 그 key값만 참조해서 반환한다.
json = JSON.stringify(rabbit, ['name', 'size']);
// {"name":"tori","size":null}
space
let user = {
name: "John",
age: 25,
roles: {
isAdmin: false,
isEditor: true
}
};
alert(JSON.stringify(user, null, 2));
/* 공백 문자 두 개를 사용하여 들여쓰기함:
{
"name": "John",
"age": 25,
"roles": {
"isAdmin": false,
"isEditor": true
}
}
*/
/* JSON.stringify(user, null, 4)라면 아래와 같이 좀 더 들여써집니다.
{
"name": "John",
"age": 25,
"roles": {
"isAdmin": false,
"isEditor": true
}
}
*/
JSON.parse()
let value = JSON.parse(str, [reviver]);
str
:JSON形式の文字列reviver
:すべての(key,value)ペアを呼び出す関数(key,value)形式の関数に値を変更できます.// 문자열로 변환된 배열
let numbers = "[0, 1, 2, 3]";
numbers = JSON.parse(numbers);
alert( numbers[1] ); // 1
// 중첩 객체
let userData = '{ "name": "John", "age": 35, "isAdmin": false, "friends": [0,1,2,3] }';
let user = JSON.parse(userData);
alert( user.friends[1] ); // 1
reviver
let json = JSON.stringify(true);
console.log(json)
json = JSON.stringify(['apple','banana'])
console.log(json)
const rabbit = {
name : 'coco',
color : 'white',
size : null,
birthDate : new Date(),
jump : ()=>{
console.log(`${name} can jump`)
},
};
json = JSON.stringify(rabbit);
console.log(json);
json = JSON.stringify(rabbit, ["name"]); // 내가 원하는 속성만 골라서 JSON으로 변환 가능
console.log(json);
json = JSON.stringify(rabbit, (key, value)=>{
// callback 사용 가능
});
// 1번째
json = JSON.stringify(rabbit)
const obj = JSON.parse(json)
console.log(obj)
rabbit.jump() // 사용이 가능한 이유는 JSON으로 변환 할 때 함수가 포함되어 있지 않았기 때문
obj.jump() // 에러 발생
// 2번째, reviver
json = JSON.stringify(rabbit)
const obj = JSON.parse(json, (key, value)=>{
return key === 'birthDate' ? new Date(value) : value;
})
console.log(obj)
rabbit.jump() // 사용이 가능한 이유는 JSON으로 변환 할 때 함수가 포함되어 있지 않았기 때문
//obj.jump() // 에러 발생
console.log(rabbit.birthDate.getDate())
console.log(obj.birthDate.getDate()) // 에러없이 출력 가능
整理する
JSON.stringify
では、必要な値をJSONにシリアル化できます.JSON.parse
を使用して、JSONを元の値に逆シーケンス化します.リファレンス
Reference
この問題について(JSON (JavaScript Object Notation)), 我々は、より多くの情報をここで見つけました https://velog.io/@hoho_0815/JSON-JavaScript-Object-Notationテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol