【发布时间】:2017-11-14 19:52:51
【问题描述】:
我有一个巨大的 Jobject 类型的数据集,格式如下
{
"key_1": {"id":"1", "name":"some1", ....},
"key_2": {"id":"", "name":"some2", .....}
}
我使用以下代码创建了这样的对象结构:
JObject res = new JObject();
JObject jo = new JObject();
jo.Add("id", "1");
jo.Add("name", "some1");
res.Add("key_1", jo);
等等;
我有一个 webservice 方法,它的返回类型对象和属性为
[WebMethod][ScriptMethod(ResponseFormat = ResponseFormat.Json)]
如何在 ajax 请求中将此数据作为对象返回。我试过了
res.ToObject() // 由于 html 对象标记,在对象周围添加了正确的大括号但它在客户端返回空数组集合,但我的期望是得到如上所述的结果(a适当的对象)。我应该如何返回 res 以获得所需的 json 输出
【问题讨论】:
-
恕我直言,JObject 不是 Web 服务的理想返回类型,即使在引擎盖下它或多或少是一个字典,它也使得工具(swagger 等)难以自动记录 api,并且可能为消费者增加了额外的复杂性。您可以在内部使用 JObject,但可能以 Dictionary
的形式返回。只是一个想法。 -
IDictionary 不能按照stackoverflow.com/a/13841497/6480144进行序列化
-
啊,当然,我忘了。对困惑感到抱歉。 @Mayur-Patil。
标签: c# asp.net web-services json.net