📜  如何在 C# 中读取 json 并插入数据库 - Javascript (1)

📅  最后修改于: 2023-12-03 15:38:13.713000             🧑  作者: Mango

如何在 C# 中读取 json 并插入数据库

在开发过程中,我们有时需要从前端传来一个 json 对象,并将其插入到数据库中。本文将介绍如何使用 C# 读取 json 并插入数据库。

1. 安装 Newtonsoft.Json

首先,我们需要安装 Newtonsoft.Json 这个第三方库,它是一个强大的 json 处理工具。可以通过 NuGet 安装,也可以通过官网下载手动引用。

2. 创建实体类

由于我们需要将 json 转换成 C# 对象后再进行操作,因此需要创建一个实体类来存储 json 中的数据。例如,我们需要存储一个人的信息,包括姓名、年龄和地址,那么可以创建如下实体类:

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
    public string Address { get; set; }
}
3. 读取并解析 json

接下来,我们需要将传来的 json 字符串读取并解析为 C# 对象。可以使用 Newtonsoft.Json 中的 JObject 类来读取 json 字符串并解析为动态类型,也可以使用类型转换将其转换为指定类型的对象。以下是一个读取 json 并解析为 Person 对象的例子:

string jsonStr = "{\"Name\":\"张三\",\"Age\":20,\"Address\":\"北京市朝阳区\"}";

Person person = JsonConvert.DeserializeObject<Person>(jsonStr);

JObject 的使用可以参考下面的例子:

string jsonStr = "{\"Name\":\"张三\",\"Age\":20,\"Address\":\"北京市朝阳区\"}";

dynamic jsonObj = JObject.Parse(jsonStr);
string name = jsonObj.Name;
int age = jsonObj.Age;
string address = jsonObj.Address;

需要注意的是,若 json 中的字段名与实体类中的字段名不一致,可以通过在实体类字段上添加 JsonPropertyAttribute 来指定字段名,例如:

public class Person
{
    [JsonProperty("name")]
    public string Name { get; set; }
    
    [JsonProperty("age")]
    public int Age { get; set; }
    
    [JsonProperty("address")]
    public string Address { get; set; }
}
4. 插入数据库

最后,我们需要将解析后的对象插入到数据库中。这里以使用 Entity Framework 进行操作为例,假设我们已经创建了一个数据库上下文对象 DbContext,并有一个 People 表用于存储 Person 对象。可以使用以下代码将其插入到数据库中:

using (DbContext context = new DbContext())
{
    Person person = JsonConvert.DeserializeObject<Person>(jsonStr);
    context.People.Add(person);
    context.SaveChanges();
}

以上就是读取 json 并插入数据库的整个过程。

总结

本文介绍了如何在 C# 中读取 json 并插入数据库,首先需要安装 Newtonsoft.Json 这个第三方库,再创建实体类存储读取后的 json 对象,使用 JObject 或类型转换将其转换为 C# 对象,最后通过 Entity Framework 将其插入到数据库中。