【问题标题】:C# serializing JSON data from Database for APIC# 序列化来自 API 数据库的 JSON 数据
【发布时间】:2022-01-04 13:36:52
【问题描述】:

我的目标是从数据库中获取数据,将它们序列化为 JSON 格式并将其发送到 API。问题是我不知道如何为 API 获取正确的 JSON 格式。

C#Worker 服务从数据库中收集数据。

从我得到的数据库中:

1|John|Wick|Action|101

我的 API 需要这个 JSON:

{ 
     "Name":"John",
     "Surname":"Wick",
     "Type":"Action",
     "Length":"101"
}

当我在 C# 中使用序列化为 JSON 时:

var jsonString = Newtonsoft.Json.JsonConvert.SerializeObject(values);

我明白了:

[John,Wick,Action,101]

有什么方法可以将值的名称添加到 JSON 中?

【问题讨论】:

  • 您需要一个类,使用从数据库加载的值创建它的一个实例(这可以通过像 Dapper 或 EF 这样的 ORM 完成),然后使用采用该类型的重载进行序列化。像 SerializeObject(classInstance)
  • 你的意思是写序列化,而不是解析。解析是将字符串转换为对象的行为,序列化是相反的。我为你更新了你的问题。

标签: c# json database api parsing


【解决方案1】:

首先根据分隔符拆分数据库结果

string dbResult = ...;  //1|John|Wick|Action|101
string[] dbResults = dbResult.Split("|");

第二次创建匿名对象(如果不想引入数据模型class/struct/record

var result = new 
{
  Name = dbResults[0],
  Surname = dbResults[1],
  Type = dbResults[2],
  Length = dbResults[3],
};

第三次序列化匿名对象

var jsonString = Newtonsoft.Json.JsonConvert.SerializeObject(result);

【讨论】:

    猜你喜欢
    • 2014-01-09
    • 2023-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多