2011-07-25 20 views
0

asp.net Webサービスのメソッドを使用して生成された以下のJSONコードを、いずれのガイドでも間違っていますか?asp.net Webserviceから生成されたJSONが無効ですか?

--------------------------- 
Message from webpage 
--------------------------- 
Error: Invalid JSON: <?xml version="1.0" encoding="utf-8"?> 

<string xmlns="http://tempuri.org/">[{"id:" '1',"title:" 'Event1',"start:" 1310236200,"end:" 1310236200,"allDay:"true,"description:" 'Event1'},{"id:" '3',"title:" 'Event2',"start:" 1309804200,"end:" 1309804200,"allDay:"true,"description:" 'Event2'},{"id:" '4',"title:" 'Event5',"start:" 1311705000,"end:" 1311705000,"allDay:"true,"description:" 'Event5'},{"id:" '5',"title:" 'Event3',"start:" 1309006800,"end:" 1309006800,"allDay:"false,"description:" 'Event3'},{"id:" '6',"title:" 'Event4',"start:" 1310495400,"end:" 1310495400,"allDay:"true,"description:" 'Event4'},{"id:" '7',"title:" 'Time Event1',"start:" 1312144200,"end:" 1312174800,"allDay:"false,"description:" 'Time Event1'},{"id:" '8',"title:" 'save1',"start:" 1312309800,"end:" 1312309800,"allDay:"true,"description:" 'save1111'},{"id:" '9',"title:" 'today',"start:" 1311273000,"end:" 1311273000,"allDay:"true,"description:" 'today'}]</string> 
--------------------------- 
OK 
--------------------------- 

答えて

2

あなたの問題は間違ったサービス要求で結論付けされたと思います。

のWebサービスコード:

namespace Test.Service 
{ 
    [WebService(Namespace = "http://tempuri.org/")] 
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] 
    [ToolboxItem(false)] 
    [ScriptService] 
    public class WebService1 : WebService 
    { 
    [WebMethod] 
    public object HelloWorld() 
    { 
     // ! return anonymous object. It cannot be serialized to xml and orients solely to json-request. 
     return new { value = 12345, name = "John" }; 
    } 
    } 
} 
  1. は、ASP.NET AJAX

    <asp:ScriptManager ID="_scriptManager" runat="server"> 
        <Services> 
        <asp:ServiceReference Path="Service/WebService1.asmx" /> 
        </Services> 
    </asp:ScriptManager> 
    
    <script type="text/javascript"> 
        $(document).ready(function() { 
        Test.Service.WebService1.HelloWorld(OnComplete); 
    
        function OnComplete(result) { 
         alert(result.value); 
         alert(result.name); 
        } 
        } 
    </script> 
    
を経由してデータを取得するjQueryの

<script type="text/javascript"> 
    $(document).ready(function() { 
    $.ajax({ 
     type: "POST", 
     contentType: "application/json; charset=utf-8", 
     url: "Service/WebService1.asmx/HelloWorld", 
     data: "{}", 
     dataType: "json", 
     success: function (data) { 
      alert(data.d.value); 
      alert(data.d.name); 
     } 
    }); 
    } 
</script> 
  • を介してデータを取得して動作するコードを参照してください。

  • 0

    トリック質問?

    これはJSONではなくXMLだからです。

    したがって、エラー

    +0

    は本当です。しかし、asp.netでJSONのWebサービスをどのように呼び出すことができますか? –

    +0

    私にとって本当に奇妙なのは、私のXmlHttpRequestがXMLを返し、Google ChromeでJSON.parse()を使って正常に解析されていることですが、Android Stockブラウザ(WebKitでも動作すると信じられています)予期しないトークンILLEGAL "エラー。 私はそれが私の開発者のマシンブラウザで働いていれば、それはAndroidブラウザでも動作すると私は仮定しました。 –

    0

    リクエストに「application/xml」または「text/xml」のコンテンツタイプが指定されている可能性があります。コンテンツタイプを「application/json」に変更してください。

    Fiddlerなどのデバッグプロキシまたはウェブブラウザの開発ツール(Firebug、Chrome開発ツールなど)を使用して確認できます。

    あなたは私たちのJavaScriptコードを表示した場合、我々は、おそらくあなたがjQuery.getJSONを使用するか、あなたは(あなたが必要とする実際の文字セットで)jQuery.ajaxを使用している場合は、「contentType: "application/json; charset=utf-8"」を指定していることを確認してくださいそれ以外の場合は、何かを見つけることができます。

    関連する問題