asmx WEBサービスでJSONを返したいがXML形式になってしまう
.NET Framework4.5で作成したWebサービスアプリケーションでJSONを返し、
iPadからSwiftのAlamofire、SwiftyJSONで取得したいと思っています。
オブジェクトのシリアライズにはJavaScriptSerializerを使っています。
public class Employee
{
public int Id { get; set; }
public string Name { get; set; }
public int Salary { get; set; }
}
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
[ScriptService]
public class WebService
{
[WebMethod]
[ScriptMethod(UseHttpGet = true, ResponseFormat = ResponseFormat.Json)]
public string GetEmployessJSON()
{
Employee[] emps = new Employee[] {
new Employee()
{
Id=101,
Name="Nitin",
Salary=10000
},
new Employee()
{
Id=102,
Name="Dinesh",
Salary=100000
}
};
var serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
string json = serializer.Serialize(emps);
return json;
}
}
■web.config
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.5" />
<httpRuntime targetFramework="4.5" />
<!-- Getを有効にする -->
<webServices>
<protocols>
<add name="HttpGet"/>
<add name="HttpPost"/>
</protocols>
</webServices>
</system.web>
</configuration>
ブラウザのアドレスバーにURLを直接入力してアクセスすると、
<?xml version="1.0" encoding="UTF-8"?>
<string xmlns="http://tempuri.org/">[{"Id":101,"Name":"Nitin","Salary":10000},{"Id":102,"Name":"Dinesh","Salary":100000}]</string>
このようにXML形式で返ってきて、中身がJsonという状態になってしまいます。
純粋にJsonだけを返したいのですが、何か解決策はないでしょうか。