JSON 문맹 퇴치 댓 글 JSON.as 클래스 튜 토리 얼

추가 내용:json 문자열 이 html 에서 FlashVars 로 인 자 를 전달 할 때 문자열 의 첫 번 째 따옴표(따옴표 포함)이후 의 내용 은 전송 되 지 않 습 니 다.adobe 의 공식 json.as 클래스 패키지 에서 josn 대상 을 분석 하 는 데 따옴표 가 빠 질 수 없습니다.그래서 반나절 을 한 후에 하나의 문자열 로 함 수 를 바 꾸 었 습 니 다!방법 은 다른 글 을 본다.html 에 더 블 따옴표 가 있 는 매개 변 수 는 플래시 솔 루 션 에 준다.앞의 이것들 은 자신의 수요 에 따라 보충 내용 이다.사실 AS 에서 json 을 사용 하 는 것 은 필수 적 이거 나 좋 은 선택 이 아 닙 니 다.AS 가 xml 에 대한 분석 이 좋 기 때 문 입 니 다.그런데 왜 json 을 사용 하 는 지 고려 할 수 있 습 니까?다음 과 같은 몇 가지 가 있 습 니 다.제 이 슨 은 단순 한 텍스트 방식(예 를 들 어 firstName=Brett&lastName=McLaughlin&[email protected])와 xml(BrettMcLaughlin[email protected])중간 형식 입 니 다.그 는 텍스트 와 xml 의 중성 적 인 장점 을 가지 고 있다.데이터 양 이 적 고 뚜렷 한 데이터 형식 이다.제 이 슨 은 자 바스 크 립 트 Object Notation 의 약자 로 자 바스 크 립 트 에서 온 것 이라는 뜻 이다.현재 ajax 의 유행 으로 인해 대부분의 사이트 에서 ajax 모델 과 구 조 를 사용 합 니 다.그러면 json 은 데이터 전송 의 최 우선 선택(텍스트 방식 이 너무 간단 합 니 다.빅 데이터 양 을 이해 할 수 없 을 때 xml 방식 의 데이터 양 이 많 고 분석 할 때 서버 부담 이 증가 합 니 다)입 니 다.그러면 한 사이트 가 ajax 프레임 워 크 를 바탕 으로 flex/flash 버 전의 인터페이스 가 나 올 때 json 을 사용 하면 서버 의 프로그램 변경 을 최소 화 할 수 있 습 니 다.서버 쪽 에 서 는 현재 성숙 한 JSON 분석 코드(JSON 의 활용 이 너무 광범 위 하기 때 문)가 있 으 므 로 개발 할 때 도 서버 쪽 의 분석 을 걱정 하지 않 아 도 됩 니 다.ps:왜 위 에 세 가지 밖 에 생각 이 안 나 지?이유 가 너무 적은 거 아니 야?JSON 이 뭐 예요?간단 한 JSON 예 시 는 가장 간단 한 형식 에 따라 다음 과 같은 JSON 으로 이름/값 을 표시 할 수 있 습 니 다.

{ "firstName": "Brett" }
이라는 예 시 는 매우 기본 적 이 고 실제 적 으로 같은 효 과 를 가 진 일반 텍스트 이름/값 보다 더 많은 공간 을 차지 합 니 다.

firstName=Brett
그러나 여러 개의 이름/값 을 한데 묶 으 면 JSON 은 그 가 치 를 나 타 냅 니 다.우선,여러 개의 이름/값 쌍 을 포함 하 는 기록 을 만 들 수 있 습 니 다.예 를 들 어

{ "firstName": "Brett", "lastName":"McLaughlin", "email": "[email protected]" }
은 문법 적 으로 볼 때 이름/값 쌍 에 비해 큰 장점 이 없 지만 이런 상황 에서 JSON 은 사용 하기 쉽 고 가 독성 이 좋 습 니 다.예 를 들 어 상기 세 가지 값 이 모두 같은 기록 의 일부분 임 을 명확 하 게 나타 낸다.괄호 가 이 값 들 로 하여 금 어떤 관 계 를 가지 게 했다.값 의 배열 이 한 조 의 값 을 표시 해 야 할 때 JSON 은 가 독성 을 높 일 뿐만 아니 라 복잡성 도 줄 일 수 있다.예 를 들 어 이름 목록 을 표시 하고 싶다 고 가정 합 니 다.XML 에 서 는 시작 표시 와 끝 표시 가 많이 필요 합 니 다.전형 적 인 이름/값 쌍 을 사용 하려 면(이 시리즈 의 앞 글 에서 보 았 던 이름/값 쌍)전용 데이터 형식 을 만 들 거나 키 이름 을 person 1-firstName 과 같은 형식 으로 수정 해 야 합 니 다.JSON 을 사용 하면 괄호 가 있 는 여러 개의 기록 을 묶 으 면 됩 니 다.

{ "people": [
{ "firstName": "Brett", "lastName":"McLaughlin", "email": "[email protected]" },
{ "firstName": "Jason", "lastName":"Hunter", "email": "[email protected]" },
{ "firstName": "Elliotte", "lastName":"Harold", "email": "[email protected]" }
]}
은 이해 하기 어렵 지 않 습 니 다.이 예제 에 서 는 people 이라는 변수 만 있 습 니 다.값 은 세 개의 항목 을 포함 하 는 배열 입 니 다.각 항목 은 한 사람의 기록 입 니 다.그 중에서 이름,성,이메일 주 소 를 포함 합 니 다.위의 예제 에 서 는 기록 을 괄호 로 조합 하 는 방법 을 보 여 줍 니 다.물론 같은 문법 으로 여러 개의 값(각 값 은 여러 개의 기록 을 포함)을 표시 할 수 있 습 니 다.{"programmers":[

{ "firstName": "Brett", "lastName":"McLaughlin", "email": "[email protected]" },
{ "firstName": "Jason", "lastName":"Hunter", "email": "[email protected]" },
{ "firstName": "Elliotte", "lastName":"Harold", "email": "[email protected]" }
],
"authors": [
{ "firstName": "Isaac", "lastName": "Asimov", "genre": "science fiction" },
{ "firstName": "Tad", "lastName": "Williams", "genre": "fantasy" },
{ "firstName": "Frank", "lastName": "Peretti", "genre": "christian fiction" }
],
"musicians": [
{ "firstName": "Eric", "lastName": "Clapton", "instrument": "guitar" },
{ "firstName": "Sergei", "lastName": "Rachmaninoff", "instrument": "piano" }
]
}
여기 서 가장 주의해 야 할 것 은 여러 개의 값 을 표시 할 수 있 고 각 값 은 여러 개의 값 을 포함 합 니 다.그러나 주 항목(programmers,authors,musicians)에 따라 실제 이름/값 이 다 를 수 있 음 을 주의해 야 한다.JSON 은 완전 동적 으로 JSON 구조의 중간 에 데 이 터 를 표시 하 는 방식 을 바 꿀 수 있다.JSON 형식의 데 이 터 를 처리 할 때 지 켜 야 할 미리 정 의 된 제약 조건 이 없습니다.따라서 같은 데이터 구조 에서 데 이 터 를 표시 하 는 방식 을 바 꿀 수 있 고 심지어 다른 방식 으로 같은 사물 을 표시 할 수 있다.ps:이상 의 예 는 모두http://www.ibm.com/developerworks/cn/web/wa-ajaxintro10/Ajax 를 익히 고 게 을 러 서 남 이 있 는 것 을 보 는 김 에 땡땡 이 를 썼 습 니 다.저 는 다시 돌 아 왔 습 니 다.지난주 에 이 출근 에 바 빠 서 쓰 는 방법 을 생각 하지 못 했 습 니 다.다음은 adobe 의 json 류 의 용법 을 소개 하 겠 습 니 다.지난번 에 발 표 된 제 이 슨 류 에 문제 가 있 습 니 다(http://bbs.actionscript3.cn/thread-1625-1-1.html)저도 다른 사람 에 게 서 다운 받 았 기 때문에 반제품 인 줄 누가 알 았 겠 습 니까?여러분 화내 지 마 세 요.관리자 가 삭제 하 라 고 건의 합 니 다!이번 에는 adobe 의 공식 클래스 입 니 다.가방 을 수정 해서 이번 에는 사용 할 수 있 습 니 다.다음은 튜 토리 얼 입 니 다.비교적 간단 합 니 다.1.서버 에서 온 제 이 슨 이 서버 의 제 이 슨 을 어떻게 얻 었 는 지 말 하지 않 겠 습 니 다.(바로 통신 입 니 다)그러면 얻 은 것 은 문자열 일 것 입 니 다.변수 server JSON 에 저장 하고 사용 방식 은 다음 과 같 습 니 다.

import json.*;
var json:Object = new Object();
json = JSON.decode(serverJSON);
제 이 슨 이 대상 입 니 다.간단 하 죠?예 를 들 어 위의 JSON 코드:

{ "programmers": [
{ "firstName": "Brett", "lastName":"McLaughlin", "email": "[email protected]" },
{ "firstName": "Jason", "lastName":"Hunter", "email": "[email protected]" },
{ "firstName": "Elliotte", "lastName":"Harold", "email": "[email protected]" }
],
"authors": [
{ "firstName": "Isaac", "lastName": "Asimov", "genre": "science fiction" },
{ "firstName": "Tad", "lastName": "Williams", "genre": "fantasy" },
{ "firstName": "Frank", "lastName": "Peretti", "genre": "christian fiction" }
],
"musicians": [
{ "firstName": "Eric", "lastName": "Clapton", "instrument": "guitar" },
{ "firstName": "Sergei", "lastName": "Rachmaninoff", "instrument": "piano" }
]
}
저장 변수:server JSON 코드:

var serverJSON:String = '{ "programmers": [{ "firstName": "Brett", "lastName":"McLaughlin", "email": "[email protected]" },{ "firstName": "Jason", "lastName":"Hunter", "email": "[email protected]" }, { "firstName": "Elliotte", "lastName":"Harold", "email": "[email protected]" }],"authors": [{ "firstName": "Isaac", "lastName": "Asimov", "genre": "science fiction" },{ "firstName": "Tad", "lastName": "Williams", "genre": "fantasy" },{ "firstName": "Frank", "lastName": "Peretti", "genre": "christian fiction" }],"musicians": [{ "firstName": "Eric", "lastName": "Clapton", "instrument": "guitar" },{ "firstName": "Sergei", "lastName": "Rachmaninoff", "instrument": "piano" }]}'
var s:Object = JSON.decode(serverJSON);
//
trace(s.programmers[0].firstName);// :Brett
아니 죠?이렇게 간단 합 니 다.사실은 바 뀌 면 대상 이 되 고 문법 을 통 해 이 값 을 방문 할 수 있 습 니 다.XML 저리 가.2.로 컬 대상 을 JSON 으로 만 들 면 JSON 문자열 을 직접 맞 출 수 있 습 니 다.하지만 우 리 는 대상 을 대상 으로 하 는 세상 입 니 다.그러면 우 리 는 모두 대상 입 니 다.그 때 는 대상 이 직접 사용 할 수 있 습 니 다.예 를 들 어

import json.*;
var myObject:Object = new Object();
myObject.ab = "adfsdf";
myObject.cd = Math.random();
trace(JSON.encode( myObject ));// :{"ab":"adfsdf","cd":0.0599129400216043}
은 서버 에 줄 수 있 습 니 다.결론:두 가지 방법 에 대해 JSON.decode(String),JSON.encode(Object)는 이렇게 간단 한 방식 으로 전 송 량 이 적 고 간단 한 데이터 형식 을 실현 하 는데 우 리 는 왜 아직 사용 하지 않 습 니까?사실 XML 도 자연히 그 자신 만 의 강세 가 있다.구조 가 복잡 한 데이터 구조 가 나 타 났 을 때 이 럴 때 JSON 은 해결 하기 어렵다.XML 이 최 우선 이다.

좋은 웹페이지 즐겨찾기