2012-04-11 19 views
35

jerseyに投稿する必要があるjsonを作成します。これは、gridzzによって実行され、REST Webサービスを持つサーバーは、出力する必要のある受信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;  
     }     

    } 

私はonloadイベント

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


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

答えて

64

がサーバにJSONを送信するときにこのメソッドを実行するHTMLファイルを持っている、あなたが最初にJSON

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

を作成する必要がありますどのようにあなたが希望ですポスト変数として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()を使用することもできます。しかし、あなたはfalseとしてcontentTypeを設定する必要があります。

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

function sendData() { 
    $.ajax({ 
     url: '/helloworld', 
     type: 'POST', 
     contentType: false, 
     data: data, 
     dataType: 'json' 
    }); 
} 
関連する問題