C# 如何在c中将带分隔符的字符串转换为json字符串#

C# 如何在c中将带分隔符的字符串转换为json字符串#,c#,json,C#,Json,我有一根绳子 string myString = "KTC|2020|MPD|18/01/2021|I|O|B|ALST|"; 我需要转换成以下格式 string convertedJsonString="{"compCode":"KTC","accountYear":"2020","shipmentNumber":"MPD","shi

我有一根绳子

string myString = "KTC|2020|MPD|18/01/2021|I|O|B|ALST|";
我需要转换成以下格式

string convertedJsonString="{"compCode":"KTC","accountYear":"2020","shipmentNumber":"MPD","shipmentDate":"18/01/2021","shipmentType":"I","shipmentCategory":"M","fromLevelCode":"B","fromLocationCode":"ALST"}";
当我试图编写如下代码时

string[] inputArray = input.Split("|");
string jsonString = @"{"+ " compCode "+ ":" + inputArray[0];
jsonString += "," + "accountYear" + ":" + inputArray[1] + "}";
我得到的字符串如下所示

{compCode:KTC,accountYear:2020}不是要求的格式


您能告诉我如何实现这一点吗?

尝试生成一个匿名类,然后序列化它:

var json = new { 
compCode = inputArray[0],
accountYear = inputArray[1],
shipmentNumber = inputArray[2],
shipmentDate=inputArray[3],
shipmentType = inputArray[4],
shipmentCategory=inputArray[5],
fromLevelCode=inputArray[6],
fromLocationCode=inputArray[7]
}

string jsonString = JsonConvert.SerializeObject(json);

如果您已经知道每个json元素的键名,那么可以创建一个映射数组并对其进行迭代

string[] a = { "compCode", "accountYear" };
var json = "{";
var stringList = "KTC|2020|MPD|18/01/2021|I|O|B|ALST|".Split('|');
for (int i = 0; i < a.length; i++) { json += @",\"{a[i]}\": \"{stringList[i]}\"" ; }
json += "}";
string[]a={“compCode”,“accountYear”};
var json=“{”;
var stringList=“KTC | 2020 | MPD | 18/01/2021 | I | O | B | ALST |”。拆分(“|”);
对于(inti=0;i
你的问题是你不能用引号来转义它们写:
string jsonString=“{\“compCode\”:…
转换为对象和序列化是最干净的,但是如果你想坚持这种方法,你应该检查一下,因为你缺少-这很好用。Thanks@Edwin不客气,请别忘了做标记作为回答。