JSON
JavaScript Object Notation
Object of JavaScript
Really LightweightList of Key-Value Pair
PrototypeLittle Database
Object Literals
Most Important Feature of JavaScript
What is Literals?
This is Literals
"ABC"5
/^[A-Z]$/
Same Objects
new String("ABC");new Integer(5);
new RegEx("^[A-Z]$");
Object Literalsvar myObject = { name: "Kim Young Hoo", 'goto': 'Jail', grade: 'A', level: 3};
No Literalsvar myObject = new Object();
myObject["name"] = "Kim Young Hoo";myObject["goto"] = "Jail";myObject["grade"] = "A";myObject["level"] = 3;
Nested Literalsvar myObject = { name: "Kim Young Hoo", goto: "Jail", greet: function() { alert("Hello"); }, friends: ['A', 'B', 'C'], format: { age: 26, width: 1920 }}
GoodmyFunction('rect', 1000, 2000)
myFunction({ type: 'rect', width: 1920, height: 1080});throw { name: 'error', message: 'out of bounds'};
Other Languages Can't Do This
Why?
Advancedvar myObject = function() { var age = 0; function setAge(number) { age = number; }; return { name: "No Name", plusTen: function() { setAge(age + 10); }, getAge: function() { return age } };}();
myObject.name = "Young Hoo";myObject.plusTen();alert(myObject.getAge());
What is JSON? 인터넷에서 자료를 주고받을 때 그 자료를 표현하는 방법
자바스크립트 "리터럴 " 을 유니코드로 인코딩하여 전송
받는 곳에선 유니코드를 디코드하여 객체를 복원
Multi Languages
타 언어의 객체도 전송되기 전에 JS 리터럴 형식의 스트링으로 변환하여 사용 가능
Java Object String (JS Literal) C# Object ↔ ↔
Encode/Decode Library
JS, AS, Java, C#, Python, Ruby, Haskell, Erlang, Lisp, C,
C++, Delphi, PHP, Perl, ....
In WatchAll
DBUpdate, DBQuery
DBUpate 나 DBQuery 의 리쿼스트에서 JSON으 로 달라는 요청이 있으면 JSON 객체를 리턴
In Flexfunction resultHandler(event:ResultEvent):void{ var rawData:String = String(event.result); var jObj:Object = JSON.decode(rawData); var dp:ArrayCollection = new ArrayCollection(jObj["DATA"]);
dataGrid.dataProvider = dp;}
빠른 통신속도 , 작은 부하
Object, Array, ArrayCollection 은 XML, XMLList, XMLListCollection 보다 효율적
XML 을 조작하는거 보다 객체를 조 작하는게 용이
JS 나 AS 스타일을 더 잘 살릴 수 있음
It's Proven Solution
대부분의 Web 2.0 사이트에서JSON 을 데이터 통신에 사용 XML
보다 압도적으로 많음
Top Related