【发布时间】:2023-04-07 09:59:01
【问题描述】:
如何防止在 aspnet webform web 方法(不是 api 或 mvc)中默认序列化以便用户 Json.net
using Newtonsoft.Json.Linq;
using Newtonsoft.Json;
[WebMethod]
public static object MyMethod()
{
dynamic field1 = new JObject();
field1.Alessio = "ciao";
return JsonConvert.SerializeObject(field1);
}
输出是:
{"d":"{\"Alessio\":\"ciao\"}"}
应该是
{"d":"{ "Alessio ": "ciao"}"}
因为已经应用了两次序列化(来自 JsonConvert.SerializeObject 和默认序列化器)
有没有办法: - 禁用单个 webmethod 的默认序列化? 要么 - 仅在页面或方法上使用 Json.Net 序列化程序更改默认序列化程序? 要么 - 使用 Json.Net 全局更改默认序列化程序?
该项目是一个 webform 应用程序(不是 api 或 mvc 应用程序),不打算在 WCF 或 HttpHandler 上移动 WebMethods
【问题讨论】:
-
您想要的输出不是有效的 JSON。你的意思是
{"d": { "Alessio": "ciao" } }吗?
标签: c# asp.net serialization json.net pagemethods