所以我是使用 MVC4 的新手,后端对象的序列化对我来说似乎很“神奇”,所以如果我以错误的方式执行此操作,请告诉我。
然而,我的目标是构建一个简单的 rest API 并返回 JSON。我想我会使用 System.Json 并返回 JsonObject。为了这个问题,我已经将其简化了,但在我的实际问题中对象要复杂得多。
这是我的控制器....
....
public class ActionsController : ApiController
{
// GET api/actions
public JsonObject Get()
{
JsonObject testObjet = new JsonObject();
testObjet.Add("Name", "Test name");
testObjet.Add("Description", "Test Description");
return testObjet;
}
....
我希望看到:
{"Name":"Test name","Description":"Test Description"}
相反,我看到:
{"Name":[],"Description":[]}
实际上,当我返回 JsonObject 的字符串时,我似乎得到了更好的结果,或者甚至只是返回对象本身,但它具有枚举并且我想返回名称而不是数字值,这就是导致我使用 JsonObject 进行自定义的原因.
有谁知道为什么它会降低价值?
编辑:因此,由于 Dan 在下面的评论,我只是为了咯咯笑,看看 XML 序列化器用 JSON 对象吐出什么,我得到了下面的异常......
“不应使用数据合同名称‘JsonPrimitive: http: //schemas.datacontract.org/2004/07/System.Json ’键入‘System.Json.JsonPrimitive’ 。”
因此,您似乎无法序列化 System.Json.JsonObject 对象,因为它使用了它不期望的类型。
这是令人震惊的。有人有解决方法吗?如果不是,我将了解如何在序列化而不是值时显示枚举名称。