>  기사  >  웹 프론트엔드  >  js/jquery가 json 및 배열 형식을 구문 분석하는 방법에 대한 자세한 설명

js/jquery가 json 및 배열 형식을 구문 분석하는 방법에 대한 자세한 설명

高洛峰
高洛峰원래의
2017-02-17 16:49:231102검색

파싱하기 전에 몇 가지 개념을 명확히 해야 합니다. 배열, 연관 배열 및 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 중국어 웹사이트를 방문하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.