gpt4 book ai didi

c# - 如何在c#中反序列化Json文件以插入到表中

转载 作者:行者123 更新时间:2023-11-30 21:34:11 25 4
gpt4 key购买 nike

我有以下 json,我正在尝试反序列化以将其插入到 SQL 表中,我尝试使用 JsonConvert 和 JObject 但没有得到肯定的结果

JSON

{
"id": "123123",
"publisherId": "Empresa",
"notificationType": "Orden",
"headers": {
"providerId": "ABC123"
},
"content": {
"id": "987987",
"orderId": "4444444",
"apiName": "Services",
"method": "GetOrder",
"verb": "GET",
"urlMethod": "https://api.com"
},
"contentVersion": "1.0"
}

型号

    public class Headers
{
public string providerId { get; set; }
}

public class Content
{
public string id { get; set; }
public string orderId { get; set; }
public string apiName { get; set; }
public string method { get; set; }
public string verb { get; set; }
public string urlMethod { get; set; }
}

public class RootModel
{
public string id { get; set; }
public string publisherId { get; set; }
public string notificationType { get; set; }
public Headers headers { get; set; }
public Content content { get; set; }
public string contentVersion { get; set; }
}

代码

    public static List<Models.RootModel> getJson()
{
using (StreamReader r = new StreamReader("c:\\LOG\\20180528\\201805281039.json"))
{
string json = r.ReadToEnd();
return JsonConvert.DeserializeObject<Models.RootModel>(json);
}
}

你给我以下错误

Error CS0029 No se puede convertir implícitamente el tipo 'WebApplication1.Models.RootModel' en 'System.Collections.Generic.List'

我真的不知道我的方向是否正确,是否需要反序列化以插入到数据库中,还是有其他方法?

在此先感谢您的帮助

最佳答案

正如错误所述,它无法将模型的实例隐式转换为模型的集合。

您正在尝试返回单个实例:

return JsonConvert.DeserializeObject<Models.RootModel>(json);

但是您的方法期望返回一个实例列表:

public static List<Models.RootModel> getJson()

如果您只是返回一个实例(因为 JSON 表示一个对象,而不是一组对象),请更改您的方法以反射(reflect)这一点:

public static Models.RootModel getJson()

关于c# - 如何在c#中反序列化Json文件以插入到表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50565658/

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