파싱하기 전에 몇 가지 개념을 명확히 해야 합니다. 배열, 연관 배열 및 json 간의 차이점과 접점은 무엇입니까?
1. 개념 소개
1. 배열
구문:
ECMAScript v3은 배열 리터럴의 구문을 지정하며 JavaScript 1.2 및 JScript 3.0에서 이를 구현합니다. 쉼표로 구분된 표현식 목록을 대괄호 안에 넣어 배열을 만들고 초기화할 수 있습니다. 이 표현식의 값은 배열 요소가 됩니다. 예:
var a = [1, true, 'abc'];
특정 작업은 API를 참조하세요.
ps: 대괄호로 구분해야 합니다.
2. 연관 배열
1. 구문:
var myhash= {”key1″:”val1″, “key2″:”val2″ };//obj
2.var
myhash= {key1:”val1″, key2:”val2″};//obj-can 도
ps: json 형식과 거의 동일하지만 json 형식은 더 많은 요구 사항 엄격하지만(내부의 키-값 쌍은 큰따옴표를 사용해야 함) json은 형식 표준으로만 사용할 수 있습니다. 이에 대해 작업하려면 연관 배열 개체(obj)로 변환해야 합니다.
2. 간단한 작업
1. 해시 연관 배열에 키 값 추가
// 새 키 newkey 추가, 키 값은 newval
myhash[” newkey ”] = “newval”;
2. 해시 연관 배열에서 기존 키 값을 삭제합니다
// newkey 키를 삭제하고 동시에 해당 newval을 삭제합니다. 키 값이 사라집니다
delete myhash[”newkey”];
3. 해시 연관 배열 탐색
// 전체 해시 배열 탐색
(myhash의 키) ) {
val = myhash[ key];
}
4. 값 가져오기
방법 1.myhash.key1
방법 2.myhash.key2
3.json
형식 요구 사항:
{”key1″:”val1″, “key2″:”val2″};//이 형식을 엄격히 따르며 작업은 다음을 기반으로 할 수 있습니다. 연관 배열의 동작
2. 이전 백그라운드 상호 작용의 몇 가지 핵심 사항
1. 서버에서 보낸 데이터가 하나의 json이 아니라 여러 개의 json인 경우 문자열을 배열과 연결하여 조합해야 합니다. 연관 배열
예: var objs = [{ id: 1, name: 'n_1' }, { id: 2, name: 'n_2'}];
2. 서버에서 클라이언트로 보내는 데이터는 문자열일 뿐이므로 js에서 필요한 작업을 수행하고 eval()을 통해 js 실행 가능 객체로 변환할 수 있도록 합니다.
따라서 jQuey에서 제공하는 $.parseJSON()에는 한계가 있습니다. 위 1에서 언급한 상황이라면 eval()을 사용하여 변환한 후 $.each(objs,function(i ,o)를 사용해야 합니다. ){...})
3. 구체적인 예시 코드
페이지 코드:
<body> <input type="button" value="send ajax json" onclick="sendAjaxByjson();"/> <input type="button" value="send ajax array" onclick="sendAjaxByarray();"/> </body> <script type="text/javascript"> function sendAjaxByjson(){ $.post("json",{},function(data){ var obj=data; alert(typeof obj);//string //var a=eval(obj);不解,不注释则会报错.. var strToobj=$.parseJSON(obj); alert(strToobj.name); alert(typeof strToobj)//obj var obja={'name':'techbirds','age':'23','sex':'male'}; alert(typeof obja);//obj alert(obja['name']+":"+obja.age); delete obja['name']; }); } function sendAjaxByarray(){ $.post("array",{},function(data){ var str=data; alert(typeof str);//string alert(typeof eval(str));//object var obja=[1,2,3,4,5]; alert(typeof obja);//object }); } </script>
백엔드 코드:
@Override protected void service(HttpServletRequest req, HttpServletResponse reps) throws ServletException, IOException { Map<String, Object> jsonMap=new HashMap<String, Object>(); jsonMap.put("name", "techbirds"); jsonMap.put("age", 23); jsonMap.put("sex", "male"); reps.getWriter().print(JSONObject.fromObject(jsonMap).toString()); reps.getWriter().flush(); reps.getWriter().close(); }rrree
더보기 주의해주세요 여러 js/jquery를 사용하여 json 및 배열 형식을 구문 분석하는 방법에 대한 관련 기사를 보려면 PHP 중국어 웹사이트를 방문하세요!