gpt4 book ai didi

c# - ASP.NET WebAPI 2 嵌套 JSON

转载 作者:太空狗 更新时间:2023-10-29 20:27:08 25 4
gpt4 key购买 nike

我已经被这个问题困扰了一段时间,但我似乎无法弄清楚。感谢任何帮助!

这是我的模型:http://www.jsoneditoronline.org/?id=9ee3466c40627f33c284e63544c8b8a7

我有像这样设置的正确 C# 对象:

public class Media
{
public string name { get; set; }
public string title { get; set; }
public string album { get; set; }
public string artist { get; set; }
public string length { get; set; }
public int bitrate { get; set; }
public double size { get; set; }
public string start_time { get; set; }
public string mimetype { get; set; }
public string hash { get; set; }
}

public class Playlist
{
public string name { get; set; }
public List<Media> media { get; set; }
public List<Graphics> graphics { get; set; }
public bool shuffle { get; set; }
public int volume { get; set; }
public string start_time { get; set; }
public string end_time { get; set; }
}

public class Day
{
public string name { get; set; }
public List<Playlist> playlists { get; set; }
}


public class Schedule
{
public List<Day> days { get; set; }
public string hash { get; set; }
}

我需要直接从 MVC Controller POST 整个 JSON 对象。在其他情况下,我想PUT 时间表。我该如何正确处理呢?示例真的很有帮助。

谢谢!

我已经在为 POST 执行以下操作:

var schedule = JsonConvert.DeserializeObject<Schedule>(model.ToString());

这按预期工作,但是,有时相关的 Media 对象已经存在于数据库中,并且在尝试 INSERT 相同的 时会导致内部服务器错误Media 对象(已存在)- Media[Key]hash 属性。

最佳答案

您需要序列化 ​​Day 类。

使用 Newtonsoft.json nuget 包,您需要将其序列化为对象。它会自动将复杂对象序列化为json

List<Day> days = // list of days result
var jsonData= JsonConvert.SerializeObject(days);
return json(jsonData);

更新

根据您的更新,序列化和反序列化功能工作正常。您在媒体中插入记录时遇到问题。哈希不是唯一的。哈希冲突是可能的。您需要改进哈希生成代码以使用相同的哈希。了解哈希的有用链接

关于c# - ASP.NET WebAPI 2 嵌套 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34235770/

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