자바 웹 json 해석 상호작용 상세 설명

그 동안 제 이 슨 의 상호작용 을 배우 고 많은 것 을 알 게 되 었 는데 그 중에서 많은 문제 에 부 딪 혀 결국은 하나씩 해결 되 었 다.오늘 퇴근 할 때 마침 시간 이 나 서 자바 웹 에서 제 이 슨 을 이용 하여 백 스테이지 상호작용 을 하 는 글 을 정리 하고 자신의 정리 와 최근 인터넷 에서 찾 은 자 료 를 일일이 올 렸 다.
JSON 프로필 및 용도
JSon 은 XML 에 이 어 또 다른 유행 하 는 상호작용 형식 으로 json 은 데이터 형식 일 뿐 이 고 구조 가 매우 간단 하 며 현재 유행 정 도 는 XML 을 초과 하여 가장 보편적 인 상호작용 형식 이 되 었 다.
저 는 한 장면 이 다음 과 같은 세 가 지 를 가진다 면 json 을 상호작용 형식 으로 사용 해 야 합 니 다. 1. 데이터 양 이 적 고 2. 단 과 단 간 의 상호작용 을 해 야 합 니 다. 3. 구조 화 된 데이터.우선 데이터 양 이 많 을 수록 제 이 슨 의 해석 논리 도 복잡 해 지고 이 때 는 적용 되 지 않 는 다.그 다음 에 엔 드 와 엔 드, 예 를 들 어 server 와 안 드 로 이 드 클 라 이언 트, server 와 브 라 우 저 간 의 통신;마지막 으로 구조 화 는 수치, 불 값, 문자열 등 간단 한 데이터 이다.연결 하면 엔 드 와 엔 드 로 소량의 간단 한 데이터 교환 을 하면 제 이 슨 을 사용한다.사실 대량의 데이터 나 이미지 음성 을 전달 하 는 상호작용 은 얼마나 많은 것 을 차지 할 수 있 습 니까? 대부분 은 이런 작은 데이터 상호작용 입 니 다. 예 를 들 어 메 신 저 등 대부분의 내용 이 작은 텍스트 입 니 다.
저 는 IBM 사이트 의 소개 에서 제 이 슨 을 초보 적 으로 알 게 되 었 고 한 이 투철 합 니 다.IBM JSON 입문 안내서, 그리고 제 이 슨 홈 페이지 소개 http://www.json.org/json-zh.html두 글 은 JSON 의 데이터 구조 와 'JSON' 이 무엇 인지 분명하게 말 하고 개인 적 으로 IBM 편 을 더 좋아 합 니 다. 어떻게 실현 하 는 지도 소개 하기 때 문 입 니 다.
------------------------------------------------------------------------------------------
실제 응용
다음은 js 와 자바 배경 인 스 턴 스 코드 입 니 다. 클 라 이언 트 와 서버 간 의 상호작용 을 배 운 적 이 없습니다.네 부분 으로 나 뉜 다. JS 는 JSON 을 받는다.JS 에서 JSON 보 내기;백 스테이지 수신;백 스테이지 발송.
편리 함 을 보 여주 기 위해 서 먼저 제 이 슨 대상 을 만 들 었 다.
{"name":"xcj","age":22}       
{name:"xcj",age:22}  //      

프론트 데스크 수신
JS 는 JSON 대상 이나 JSON 문자열 을 받 아 여러 가지 처리 방법 이 있 습 니 다.우선 JSON 구 조 는 사전에 알 아야 하 는데, 이 JSON 이 하나의 이름과 한 연령 이라는 사실 을 몰 랐 다 면 해석 하기 어 려 웠 을 것 이다.JSON 은 원래 js 를 위 한 디자인 이기 때문에 js 처리 가 매우 간단 하 다.
var person={"name":"xcj","age":22}      //    person  json
person.name="xcj2"				//    

JSON 문자열 을 받 아들 이면eval 방법 으로 json 대상 으로 해석 하고 직접 인용 하면 됩 니 다.
var person=eval("("+jsonString+")");     //jsonString       

이렇게 하면 목적 을 달성 할 수 있다. 왜냐하면 json 은 처음에 자바 script 을 위해 설계 되 었 기 때문에 js 처리 json 은 정말 편리 하 다.
제 이 슨
전단 페이지 에서 데 이 터 를 만 들 때 보통 js 대상 이 므 로 json 형식 으로 배경 으로 보 내야 합 니 다.js 대상 을 다음 과 같이 가정 합 니 다.
var person={};
person.name="xcj";
person.age=22;
 
       该js等同上面的json。现在将该js转换为json字符串,传到Java后台,js转成json需要使用json2.js(也有很多其他js插件、Ajax框架可以做到,这里使用json官方的json2.js)。注意不是json.js,那是旧版,而且搜索出来的资源少。当时我浪费了很多时间,后来搜json2.js马上ok。 
  
   引入json2.js后,有两种方法可以将js转为json字串。
//1、JSON.stringify()      
var  jsonString=JSON.stringify(person);
//2、toJSONString()  。
var jsonString=person.toJSONString();
 /*            。json2.js    JSON.parse()   parseJSON,   json      js  */
//1、JSON.parse()
var person=JSON.parse(personstr);
//2、parseJSON
var person=personstr.parseJSON();

의문 과 이해 요점:
1. JSON. stringify 는 json. js 에 만 있 는 방법 이 고, toJSONstring 은 새로운 버 전의 방법 으로 자바 script 내 건설 대상 에 방법 을 주입 합 니 다. json. js 를 도입 하면 이 방법 을 잘못 보고 할 수 있 습 니 다.
2. 임의의 js 대상 은 toJSONstring 을 호출 할 수 있 으 며, parseJSON 을 참조 하 는 것 은 문자열 이 어야 합 니 다.
3. js 대상 의 몇 가지 표현 방식.
/*    Object*/
var obj1=new Object();
obj1.age=22;

//        
function person(name,age){
this.name=name;
this.age=age;
}
var obj2=new person(myname,myage);
// javascript1.2  ,    json    ,      
var person={name:myname,age:myage}

//        
var pa=new Array();
pa[0]=new person('xcj',22);
pa[1]=new person('sicong',23);
//  json        
var pa=[{name:'xcj',age:22},{name:'sicong',age:23}]

4、
JSON 의 key 에 더 블 따옴표 가 붙 지 않 는 문제: 이것 은 엄숙 한 문제 이지 만 나 는 그것 을 진지 하 게 보지 않 는 다.json 의 key 에 더 블 따옴표 를 추가 하지 않 는 것 은 사실 모두 옳 지만 표준 시 추가 해 야 합 니 다. phop, 자바 배경 같은 곳 이 라면 json 을 구축 할 때 key 에 따 옴 표를 추가 하지 않 는 것 은 변수 로 여 겨 집 니 다.그리고 제3자 도구 도 잘못 보고 할 수 있 습 니 다. 예 를 들 어 jQuery 의 parseJSON 방법 은 json 문자열 의 key 를 반드시 쌍 인용 해 야 js 대상 으로 전환 할 수 있 습 니 다.
      한 마디 로 문자열 을 구성 할 때 key 는 반드시 인용 해 야 합 니 다. js 대상 을 쓸 때 추가 하거나 추가 하지 않 아 도 됩 니 다. 어차피 json 문자열 로 바 뀌 면 자동 으로 따옴표 가 붙 습 니 다.어쨌든 더군다나 가장 좋다.
자바 백 스테이지 수신
    자바 자체 가 제 이 슨 이라는 것 을 모 르 기 때문에 제3자 가방 을 빌려 org. json 가방 을 도입 해 야 합 니 다.이 가방 의 주요 세 가지 유형 은 JSONarray, JSONexception, JSONobject 이다.각각 json 배열 을 대표 하여 json 에서 발생 하 는 오 류 를 처리 하고 JSON 대상 (비 배열) 을 처리 하 는 데 사 용 됩 니 다.
   우선 우 리 는 먼 곳 에서 문자열 jsonstr 를 받 았 습 니 다. 자바 는 json 이라는 것 을 알 지만 알 아 볼 수 없어 서 전문 가 를 불 러 처리 하 는 과정 이 이 렇 습 니 다.
   이 json 문자열 이 두 사람 xcj 와 sicong 을 포함 한 배열 이 라 고 가정 합 니 다.jsonstr='[{"name":"xcj","age":22},{"name":"sicong","age":25}]'
JSONArray jsonarr=new JSONArray(jsonstr);//   json  
for(int i=0;i< jsonarr.length();i++){
   //     i json  ,key name  
     System.out.print(jsonarr.getJSONObject(i).get("name"));
   System.out.print(jsonarr.getJSONObject(i).get("age"));
}
  (     ):
xcj  22         sicong             25

이렇게 하면 제 이 슨 의 내용 을 가 져 오고 자바 대상 으로 전환 하여 처리 할 수 있 습 니 다.
4. 자바 생 성 json 문자열 발송
//1、      ,        
JSONArray array = JSONArray.fromObject(personlist);
String jsonstr = array.toString();

//2.java    json  ,      
JSONObject object = JSONObject.fromObject(person1);
String jsonstr=object.toString();

메모: json 관련 코드 는 try - catch 로 감 싸 고 JSONexception 으로 캡 처 처리 해 야 합 니 다.
  json 을 해석 하려 면 먼저 구 조 를 알 아야 한다. 예 를 들 어 배열 이 맞 는 지 아 닌 지 를 알 아야 한다.(구 조 는 알 수 없고 해석 작업량 이 많 습 니 다. 특히 복잡 한 제 이 슨 꼬치 입 니 다. 이 때 는 제 이 슨 을 사용 하기에 적합 하지 않 습 니 다)
현재 제 이 슨 과 관련 된 공구 꾸러미 와 방법 이 매우 많 습 니 다. 저 는 가장 간단 한 용법 만 썼 습 니 다. 복잡 한 제 이 슨 은 아직 어떻게 처리 해 야 할 지 모 르 겠 습 니 다. 대동소이 하 겠 죠?
- 목 목 은 광저우 에서 일 하 는 자바 프로그래머 입 니 다. 제 위 챗 abc 519764500 을 추가 하여 서로 교류 하 는 것 을 환영 합 니 다. 광저우 의 친 구 는 주말 에 같이 활동 하고 휴식 을 취 할 수 있 습 니 다.

좋은 웹페이지 즐겨찾기