我习惯于在Django(类似于Ruby on Rails)中这样做,在某些情况下,我需要硬编码一个JSON响应对象,以便客户端能够解释,但我一直在网上到处搜索如何使用ASP.NET Web API来做这件事,我找不到任何关于这方面的东西,ASP.NET Web API似乎迫使我创建一个类来表示每个URI控制器的JSON响应。
例如,我知道手动创建JSON响应的唯一方法是:
1.)我首先需要创建类来表示响应对象
public class XYZ_JSON
{
public string PropertyName { get; set; }
public string PropertyValue { get; set; }
}
2.)然后,我需要正确编写URI控制器,该控制器将返回上面定义的“XYZ_JSON”:
// GET: api/ReturnJSON
public XYZ_JSON Get()
{
XYZ_JSON test = new XYZ_JSON { PropertyName = "Romulus", PropertyValue = "123123" };
return test;
}
将产生类似以下内容的http响应:
200正常{"PropertyName":"Romulus", "PropertyValue":"123123"}
JSON设计模式的整个类都很酷,但没有什么帮助,当试图将一个类作为JSON对象返回时,实际上会使情况变得更糟,其中包含许多类,例如:
public class XYZ_JSON
{
public string PropertyName { get; set; }
public string PropertyValue { get; set; }
public List<ComplexObject> objects { get; set; } // <- do not want
}
上面的JSON响应对象并不复杂,但是对于我试图完成的任务,我必须将一个类列表放在一个类列表中,而且我不能以这种笨拙的方式开发它,除非我花一周的时间来开发它,这简直是荒谬的。
我需要能够以这种方式返回JSON响应:
// GET: api/ReturnJSON
public JSON_Response Get(string id)
{
// do some SQL querying here to grab the model or what have you.
if (somethingGoesWrong = true)
return {"result":"fail"}
else
return {"result":"success","value":"some value goes here"}
}
上面的设计模式就是我试图用ASP.NET Web API来实现的,这是一种非常简单的方法来返回一个半硬编码的JSON响应对象,它允许我从一个URI返回非常唯一和动态的响应。在许多用例中,将返回一个多达8个完全唯一的类对象的列表。
此外,如果我试图完成的是向后的方式做的事情比这还好.我已经发布了一个非常成功和稳定的iOS应用程序与一个完美的Django后端服务器处理事情这样完美,没有任何问题.
有人能向我解释一下如何使用ASP .NETWebAPI返回一个简单的硬编码JSON响应吗?
谢谢你!
5条答案
按热度按时间yhxst69z1#
对于硬编码的响应,为什么不像下面这样做呢?JSON内容将被返回,而不会被引号括起来。
ct2axkht2#
您可以使用JsonResult类返回json。并且Json()方法接受匿名对象,因此您不需要创建类。
qyzbxkaa3#
您可以在C#中创建anonymous types,这样您就可以使用其中的一个生成硬编码结果。例如:
为了澄清,上面的代码是针对ASP.NETMVC的。如果你使用WebAPI,那么你可以只返回数据对象,或者使用
IHttpActionResult
。匿名类型部分(new {}
)保持不变。ef1yzkbh4#
使用匿名对象。
gxwragnw5#
您可以使用泛型JObject返回值,而无需构造完整的类结构,如下所示