2012-04-11 2 views
35

jersey에 게시해야하는 json을 작성합니다. jersey에는 REST 웹 서비스가있는 grizzly에서 실행되는 서버가 들어오는 json 객체를 가져와야합니다. 나는 시도를하고 있지만 올바르게 구현하는 방법을 모르겠습니다.JQuery가 서버에 JSON 객체를 게시합니다.

import java.io.IOException; 
import java.io.InputStream; 

import net.sf.json.JSONObject; 
import net.sf.json.JSONSerializer; 

import org.apache.commons.io.IOUtils; 

import javax.ws.rs.*; 

    @Path("/helloworld") 
    public class GetData { 
     @GET 
     @Consumes("application/json") 
     public String getResource() { 

      JSONObject obj = new JSONObject(); 
      String result = obj.getString("name"); 

      return result;  
     }     

    } 

내가 서버에 JSON을 보내기 위해서는 온로드

function sendData() { 
     $.ajax({ 
       url: '/helloworld', 
       type: 'POST', 
       contentType: 'application/json', 
       data: { 
        name:"Bob", 


       }, 
       dataType: 'json' 
      }); 
      alert("json posted!"); 
     }; 

답변

64

동안이 방법을 실행하는 HTML 파일이 먼저이 어떻게 것입니다

function sendData() { 
    $.ajax({ 
     url: '/helloworld', 
     type: 'POST', 
     contentType: 'application/json', 
     data: JSON.stringify({ 
      name:"Bob", 
      ... 
     }), 
     dataType: 'json' 
    }); 
} 

JSON을 만들어야합니다 post json으로 보내는 ajax 요청을 구조화하십시오.

function sendData() { 
    $.ajax({ 
     url: '/helloworld', 
     type: 'POST', 
     data: { json: JSON.stringify({ 
      name:"Bob", 
      ... 
     })}, 
     dataType: 'json' 
    }); 
} 

json으로 이제 json 포스트 VAR에있을 것입니다.

+0

감사합니다. 나는 여전히 서버가 json 객체를 얻는 방법을 파악하고있다. – nihulus

+0

이렇게 보내면 json이 요청 본문이됩니다. 대신 json을 POST var에 넣으려면 ajax 요청을 수정해야합니다. –

+0

하지만 Json으로 처리하려면 어떻게해야합니까? 즉 jsp를 사용하여 JSONObject를 만들고 다음 페이지로 전달하려는 경우 jquery에서 JSONObject (jsonobj)를 보내는 방법 POST –

0

FormData()을 사용할 수도 있습니다. 하지만 contentTypefalse으로 설정해야합니다.

var data = new FormData(); 
data.append('name', 'Bob'); 

function sendData() { 
    $.ajax({ 
     url: '/helloworld', 
     type: 'POST', 
     contentType: false, 
     data: data, 
     dataType: 'json' 
    }); 
} 
관련 문제