2012-04-11 17 views
35

मैं एक जेसन बना देता हूं जिसे जर्सी में पोस्ट करने की आवश्यकता होती है, एक सर्वर जो ग्रिज़ली द्वारा चलाया जाता है जिसमें एक आरईएसटी webservice आने वाली जेसन ऑब्जेक्ट प्राप्त करता है जिसे आउटपुट करने की आवश्यकता होती है। मैं कोशिश कर रहा हूं लेकिन यह सुनिश्चित नहीं करता कि इसे सही तरीके से कैसे कार्यान्वित किया जाए।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;  
     }     

    } 

मैं एक html फ़ाइल है कि इस विधि जबकि ऑनलोड

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


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

उत्तर

64

चलाता सर्वर से json भेजने के लिए है, तो आप पहले json बनाने के लिए

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

यह आप कैसे होगा है json को पोस्ट var के रूप में भेजने के लिए AJAX अनुरोध को ढांचा दें।

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

जेसन अब json पोस्ट var में होगा।

+0

धन्यवाद! मैं अभी भी यह पता लगा रहा हूं कि सर्वर को जेसन ऑब्जेक्ट कैसे मिलता है। – nihulus

+0

इस तरह से भेजे जाने पर, जेसन अनुरोध निकाय होगा। यदि आप चाहते हैं कि जेसन एक पोस्ट var में हो, तो AJAX अनुरोध को संशोधित करने की आवश्यकता होगी। –

+0

लेकिन अगर मैं जेसन ऑब्जेक्ट के रूप में चाहता हूं तो क्या होगा। यानी मान लीजिए कि मेरे पास JSSPObject जेएसपी का उपयोग करके बनाया गया है और अगले पृष्ठ पर जाना चाहता है, तो jquery 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' 
    }); 
} 
संबंधित मुद्दे