Reputation: 45921
I'm developing a WCF web service that returns this:
{
"allFormsResult": [
{
"FormId": 1,
"FormName": "Formulario 1"
},
{
"FormId": 2,
"FormName": "Formulario 2"
},
{
"FormId": 3,
"FormName": "Formulario 3"
}
]
}
This is the code:
public class RestServiceImpl : IRestServiceImpl
{
public List<FormContract> allForms()
{
List<FormContract> list = null;
using (var vAdmEntities = new ADMDatabase.ADMEntities())
{
list = new List<FormContract>();
foreach (var form in vAdmEntities.Form)
{
FormContract formC = new FormContract
{
FormName = form.name.Trim(),
FormId = form.formId
};
list.Add(formC);
}
}
return list;
}
}
How can I do to generate it in this way?
[
{
"FormId": 1,
"FormName": "Formulario 1"
},
{
"FormId": 2,
"FormName": "Formulario 2"
},
{
"FormId": 3,
"FormName": "Formulario 3"
}
]
Upvotes: 2
Views: 4286
Reputation: 1
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>
Upvotes: 0
Reputation: 45921
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
Upvotes: 4