Generate JSON array with WCF

前端 未结 2 1830
悲哀的现实
悲哀的现实 2021-01-22 15:46

I\'m developing a WCF web service that returns this:

{
    \"allFormsResult\": [
        {
            \"FormId\": 1,
            \"FormName\": \"Formulario 1\"
         


        
相关标签:
2条回答
  • 2021-01-22 16:17

    The problem is here:

    namespace ADM
    {
        [ServiceContract]
        public interface IRestServiceImpl
        {
            [OperationContract]
            [WebInvoke(Method = "GET",
                ResponseFormat = WebMessageFormat.Json,
                BodyStyle = WebMessageBodyStyle.Wrapped,
                UriTemplate = "forms/")]
            List<FormContract> allForms();
        }
    }
    

    I have to use it this way:

    namespace ADM
    {
        [ServiceContract]
        public interface IRestServiceImpl
        {
            [OperationContract]
            [WebInvoke(Method = "GET",
                ResponseFormat = WebMessageFormat.Json,
                BodyStyle = WebMessageBodyStyle.Bare,
                UriTemplate = "forms/")]
            List<FormContract> allForms();
        }
    }
    

    Changing BodyStyle:

    BodyStyle = WebMessageBodyStyle.Bare
    
    0 讨论(0)
  • 2021-01-22 16:26

    This behavior can also be set as default through the Web.Config, without the need to add the attributes directly to the contract.

    <services>
      <service name="MyServiceNameSpace.MyServiceClass">
        <endpoint
            address="http://yourservicedomain.ext/MyServiceClass.svc/"
            binding="webHttpBinding"
            contract="MyServiceNameSpace.MyServiceContract"
            behaviorConfiguration="MyEndpointBehavoir"
            listenUri="/" />        
      </service>      
    </services>
    
    <behaviors>
      <endpointBehaviors>
        <behavior name="MyEndpointBehavoir">
          <webHttp defaultOutgoingResponseFormat="Json" defaultBodyStyle="Bare"/>
        </behavior>        
      </endpointBehaviors>
    </behaviors>
    
    0 讨论(0)
提交回复
热议问题