【发布时间】:2014-02-21 00:22:56
【问题描述】:
我有一个 Web 服务(C#,非 WCF)应该将 JSON 返回到移动应用程序客户端,它有一个这样的 API 函数:
[WebMethod]
[ScriptMethod(UseHttpGet = true, ResponseFormat = ResponseFormat.Json)]
public Animal AnimalInformation(int animalID) {
Animal animal = new Animal();
animal.name = AnimalNameForID(animalID);
animal.color = AnimalColorForID(animalID);
return animal;
}
虽然它的响应格式设置为 JSON,但它在浏览器中显示的响应仍然是 XML,像这样:
<Animal>
<Name>Vicky</Name>
<Color>Grey</Color>
</Animal>
我一直在寻找答案,发现这与客户端的接收格式有关,根据这个thread,线程建议使用这段javascript代码来查看JSON返回:
$.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
}
});
我无法让这段 js 代码工作,它总是失败。
我的问题:
1,是否可以在我的浏览器中设置任何设置,以便它从 Web 服务中请求 JSON 而不是 XML?
2,如果没有,是否有任何(简单)替代解决方案?我正在为我的应用构建这个 Web Service,但我还没有开始开发应用,所以请不要建议使用应用作为 WS 的测试客户端
【问题讨论】:
-
您需要将响应反序列化为一个对象,然后使用该对象的值设置页面上的属性。
-
@Pathachiever11,这解决了我的问题,请将您的评论放入答案中,我会接受它作为正确答案。
标签: c# javascript .net web-services webservice-client