gpt4 book ai didi

c# - JSON 根节点 - 不同于类名

转载 作者:太空宇宙 更新时间:2023-11-03 21:13:23 26 4
gpt4 key购买 nike

我需要让我的 JSON 输出看起来像这样:

{
"User": {
"Id" : "1",
"FirstName" : "John",
"LastName" : "Doe",
... etc

我的第一个问题是这里被序列化的类名叫做 Person 而不是 User,我无法更改它。但是 JSON 需要 User

其次,我的 Web API 方法在这里根本没有返回根节点,我究竟做错了什么?

我的 JSON 看起来像这样:

{"Id":1,"BossId":null,"Title":"CEO","GivenName":"Doe", ... etc

这是非常糟糕的格式,甚至我的 Chrome 扩展程序都无法识别这些东西。

这是我的 Web API Controller ,用于通过 ID 获取用户,结果如下:

[Route("{id:int}")]
public HttpResponseMessage GetPerson(int id) {

Person person = repository.Get(id);

if (person == null) {
throw new HttpResponseException(HttpStatusCode.NotFound);
}

return Request.CreateResponse(HttpStatusCode.OK, person);

}

我还必须在这里将类属性映射到不同的名称,这是一个单独的问题。

例如,类有 GivenName 和 FamilyName,但 JSON 需要 FirstName 和 LastName。是否有我可以为此属性应用的属性?

如有任何帮助,我们将不胜感激。

最佳答案

ASP.NET WebApi 使用 JSON.NET用于序列化为json。所以你可以通过这种方式更改名称:

class Person
{
[JsonProperty(PropertyName = "LastName")]
public string FamilyName { get; set; }
...
}

编辑

要添加根元素,请看这个 answer .我没试过这个,但看起来不错。

关于c# - JSON 根节点 - 不同于类名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36143942/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com