gpt4 book ai didi

c# - 使用包含带有点符号的元素名称的变量动态创建 JSON

转载 作者:太空宇宙 更新时间:2023-11-03 14:40:14 27 4
gpt4 key购买 nike

我在 Azure Blob 存储中有 2 个 csv 文件,我正在使用 C# 来解析这些文件

  • 第一个 csv 文件是一个小文件,其中包含从第二个 csv 文件中的数据到 API 的映射记录如下所示
csvField1, apiField1.subfield1
csvField2, apiField2
csvField3, apiField5
csvField6, apiField1.subfield2
  • 第二个 csv 文件很大,所以我将使用流来读取它,文件的标题包含以下列名称csvField1、csfField2、csvField4、csfField5、csvField6、csfField7

我希望输出是如下所示的 JSON

{
apiField1:{
subfield1: value(csvField1)
subfield2: value(csvField6)
},
apiField2:value(csvField2),
apiField5: value(csvField3)
}

最佳答案

Newtonsoft.Json 库的可行解决方案:

A) 为 apiField1 创建数据类

class ApiField1
{
public ApiField1(string s1, string s2)
{
subfield1 = s1;
subfield2 = s2;
}

public string subfield1 { get;}
public string subfield2 { get;}
}

B) 为API记录创建数据类

class ApiRecord
{
public ApiRecord(string[] s)
{
apiField1 = new ApiField1(s[0], s[5]);
apiField2 = s[1];
apiField5 = s[2];
}

public ApiField1 apiField1 { get; }
public string apiField2 { get; }
public string apiField5 { get; }
}

C)测试

class Program
{
static void Main(string[] args)
{
ApiRecord a = new ApiRecord("0,1,2,3,4,5".Split(','));
Console.WriteLine(JsonConvert.SerializeObject(a));
Console.ReadLine();
}
}

结果:

{"apiField1":{"subfield1":"0","subfield2":"5"},"apiField2":"1","apiField5":"2"}

我只是用一个简单的字符串“0,1,2,3,4,5”进行测试。在您的情况下,您可以从 CSV 文件流中读取每一行。

或者,您可以使用字典:

Dictionary<string, String> apidield1 = new Dictionary<string, string>();
apidield1.Add("subfield1", "value(csvField1)");
apidield1.Add("subfield2", "value(csvField6)");

Dictionary<string, Object> apiRecord = new Dictionary<string, object>();
apiRecord.Add("apiField2", "value(csvField2)");
apiRecord.Add("apiField5", "value(csvField3)");
apiRecord.Add("apiField1", apidield1);

Console.WriteLine(JsonConvert.SerializeObject(apiRecord));

输出:

{"apiField2":"value(csvField2)","apiField5":"value(csvField3)","apiField1":{"subfield1":"value(csvField1)","subfield2":"value(csvField6)"}}

关于c# - 使用包含带有点符号的元素名称的变量动态创建 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57272499/

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