Nic*_*ico 5 asp.net json web-services asmx
我在网上找到了几个针对WCF Web服务而不是ASP Web服务的解决方案.
目前,我正在收到一条JSON响应说:
{"d":[{"__type":"NetworkFuzzWebSvc.Sessions","BaseUri":"http://localbox","SessionId":"43b8716f-40ab-43bf-8311-575c2ecd2730}]}
Run Code Online (Sandbox Code Playgroud)
我需要它返回:
{"Sessions":["BaseUri":"http://localbox","SessionId":"43b8716f-40ab-43bf-8311-575c2ecd2730}]}
Run Code Online (Sandbox Code Playgroud)
这是我正在使用的Web服务代码的副本(NetFuzzWebSvc.asmx):
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.Services;
using System.Web.Script.Services;
namespace NetworkFuzzWebSvc
{
public class Sessions
{
public string BaseUri;
public string SessionId;
}
/// <summary>
/// Summary description for NetFuzzJson
/// </summary>
[WebService(Namespace = "http://localbox")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ScriptService]
public class NetFuzzJson : WebService
{
List<Sessions> Sessions = new List<Sessions>
{
new Sessions{
BaseUri = "http://localbox/",
SessionId="43b8716f-40ab-43bf-8311-575c2ecd2730"
}
};
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public List<Sessions> GetAllSessions()
{
return Sessions;
}
}
Run Code Online (Sandbox Code Playgroud)
有人有解决方案吗?谢谢!
我不认为你可以。我认为这就是返回的 json 的格式。
您可以尝试去掉 ResponseFormat 位并返回一个字符串并使用
JavaScriptSerializer ser = new JavaScriptSerializer();
string json = ser.Serialize(objectClass);
return json;
Run Code Online (Sandbox Code Playgroud)
或者更好地使用 JSON.Net 库。
另请参阅如何不序列化 JSON 对象上的 __type 属性,了解如何删除 __type 位。
| 归档时间: |
|
| 查看次数: |
11275 次 |
| 最近记录: |