2011-11-20 13 views
5

मैं अपने वेब सेवा की आवश्यकता JSON वापस जाने के लिए वापस आ जाएगी ...वेब सेवा json

मेरे पास मेरी .asmx फ़ाइल में निम्न कोड:

<?xml version="1.0" encoding="utf-8"?> 
<Person xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://tempuri.org/"> 
    <FirstName>Dave</FirstName> 
    <LastName>Ward</LastName> 
</Person> 
:

namespace Feed 
{ 
    [WebService(Namespace = "http://tempuri.org/")] 
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] 
    [System.ComponentModel.ToolboxItem(false)] 

    [System.Web.Script.Services.ScriptService] 
    public class searchPerson : System.Web.Services.WebService 
    { 

     [WebMethod] 
     [ScriptMethod(ResponseFormat = ResponseFormat.Json)] 
     public Person GetDave() 
      { 
       Person dave = new Person(); 

       dave.FirstName = "Dave"; 
       dave.LastName = "Ward"; 

     return dave; 
     } 
    } 
} 

निम्नलिखित कौन सा रिटर्न

मैं इसे XML के बजाय JSON वापस करने के लिए कैसे मजबूर करूं?

+0

यदि आपको JSON की आवश्यकता है और एक्सएमएल नहीं है, तो आपके पास नेमस्पेस क्यों परिभाषित किया गया है? – Oded

+0

ऐसा लगता है कि यह अभी दोनों के लिए सेटअप है .. क्या आप YourPage.asmx/js पर जा सकते हैं और जावास्क्रिप्ट प्रॉक्सी स्क्रिप्ट देख सकते हैं? –

+0

@ माइक क्रिस्टेनसेन हां यह संभव है – Mikael

उत्तर

5

आपकी webservice परिभाषा सही दिखती है। सुनिश्चित करें कि आप एक पोस्ट के माध्यम से सेवा को कॉल कर रहे हैं और याद रखें कि कुंजी 'सामग्री प्रकार' शीर्षलेख application/json के रूप में निर्दिष्ट कर रही है।

(यह jQuery उपयोग कर रहा है, लेकिन अगर आप की तरह आप निम्न स्तर जावास्क्रिप्ट इस्तेमाल कर सकते हैं)

$.ajax({ 
    type: "POST", 
    contentType: "application/json; charset=utf-8;", 
    url: "http://MyWebServiceURL", 
    data: JSON.stringify({ ParameterName: "DataToSend" }), 
    dataType: "json", 
    success: function (data, textStatus, jqXHR) { 
     //do something 
    }, 
    error: function (jqXHR, textStatus, errorThrown) { 
     //fail nicely 
    } 
}); 
+0

इससे पता चला कि वेब सेवा काम कर रही थी, समस्या यह थी कि मैंने इसे अपने आईफोन एप्लिकेशन से कैसे बुलाया। – Mikael

1

शुरू करने से पहले नीचे referances जोड़ें: अपने विधि में

using System.Web.Script.Services; 
using System.Web.Script.Serialization; 

उपयोग नीचे दिए गए कोड, के लिए किसी भी डेटा को जेएसओएन डेटा प्रारूप में अंत में परिवर्तित करना:

JavaScriptSerializer serializer = new JavaScriptSerializer(); 
return serializer.Serialize(empData); 

empData डेटा की सरणी है डेटाटेबल से पंक्तियां।

संबंधित मुद्दे