C# 以正确的格式将JSON字符串写入JSON文件,而不使用内置方法或第三方库

C# 以正确的格式将JSON字符串写入JSON文件,而不使用内置方法或第三方库,c#,json,C#,Json,我有一个包含数据的文本文件和另一个包含数据字段的文本文件。我能够将数据和数据字段读入到单独的数组中 我已经设法将其转换为JsonFormat。但是当我在json文件中写入它时,它的格式并不像json数据那样正确。它将如何形成一个合适的格式?另外,我不想使用序列化或第三方LIB 我的输入数据文件包含102行,其中第一行和最后一行可以忽略。每行对应一条记录。所以它有大约100条记录。每条记录有150个字段,以|分隔 样本记录: (12)2010年6月29日,2010年6月30日,2010年6月30日

我有一个包含数据的文本文件和另一个包含数据字段的文本文件。我能够将数据和数据字段读入到单独的数组中

我已经设法将其转换为JsonFormat。但是当我在json文件中写入它时,它的格式并不像json数据那样正确。它将如何形成一个合适的格式?另外,我不想使用序列化或第三方LIB

我的输入数据文件包含102行,其中第一行和最后一行可以忽略。每行对应一条记录。所以它有大约100条记录。每条记录有150个字段,以|分隔

样本记录:

(12)2010年6月29日,2010年6月30日,2010年6月30日,2010年6月30日,美国联邦公路管理局(12月29日)12月30日,美国联邦公路管理局(12月29日)3月18日,3月29日,3月29日当天当天当天当天当天当天当天当天的3月18日日,3月13日日日非非非本本本本周四周四周四\1248338383838383838383838383819124早些早些早些方方方方方方数数数数数数数数数数数数数数数数数数数数数数数方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方新泽西大道1200号,邮编6120N | 0000 | | | |,SE | E65-101室|华盛顿| 20590 | 0001 |美国| DC |弗兰克·沃尔托斯|沃尔托斯|新泽西大道1200号,SE | E65-312室|华盛顿| 20590 | 0001 |美国| DC | 2023664205 | | 2023663705 |弗兰克。Waltos@dot.gov|弗兰克|沃尔托斯| 1200新泽西大道东南| E65-312室|华盛顿| 20590 | 0001 |美国| DC | 2023664205 | 2023663705 |弗兰克。Waltos@dot.gov|||||||||||||||||||||||||||||||||弗兰克·沃尔托斯1200新泽西大道东南室E65-312 |华盛顿| 20590 | 0001 |美国| DC | 2023664205 | 2023663705 |弗兰克。Waltos@dot.gov|杰森|约翰逊|新泽西大道东南1200号|华盛顿| 20590 | 0001 |美国| DC | 2023665880 | 2023663705 |杰森。johnson@dot.gov|0000 | | N | | 0000 | | | 0000 | | |!结束

数据字段文件包含150个字段
样本:

邓斯
邓斯+4
CAGE代码
DODAAC
SAM提取代码
注册目的
注册日期 有效期

我希望记录是这样写的

 {
  "DUNS": "070815200",
  "DUNS+4": "",
  "CAGE CODE": "7HEG5",
  "DODAAC": "",
  "SAM EXTRACT CODE": "A",
  "PURPOSE OF REGISTRATION": "Z2",
  "REGISTRATION DATE": "20151113",
  "EXPIRATION DATE": "20161112",
  "LAST UPDATE DATE": "20151123"
 }
现在,它们是在没有任何格式的情况下编写的

{“DataFile1”:[{“DUNS”:“928338219”,“DUNS+4”:”“}

我已经在Jsonlint中检查了我的JSON字符串,它是一个有效的JSON

public void convertToJSONsyntax( string [] data, string [] dataFields) 
    {
  string[] splitData = new string[150];
        var JSONSyntaxString = "{\"DataFile1\" :[";
        //var json = JsonConvert.DeserializeObject(JSONSyntaxString);
        for (int i=0;i<data.Length; i++) 
        {
            JSONSyntaxString += "{";
            splitData = data[i].Split('|');
            for(int j = 0; j < dataFields.Length; j++)
            {
                if (j == dataFields.Length - 1)
                {
                    JSONSyntaxString += "\"" + dataFields[j] + "\":\"" + splitData[j] + "\"";
                }
                else
                {
                    JSONSyntaxString += "\"" + dataFields[j] + "\":\"" + splitData[j] + "\",";
                }
            }
            if (i == data.Length - 1)
            {
                JSONSyntaxString += "}";
            }
            else
            {
                JSONSyntaxString += "},";
            }
        }
        JSONSyntaxString = JSONSyntaxString + "]}";
        File.WriteAllText("C:\\OutputData.json", JSONSyntaxString);
public void convertToJSONsyntax(字符串[]数据,字符串[]数据字段)
{
string[]splitData=新字符串[150];
var JSONSyntaxString=“{\”数据文件1\”:[”;
//var json=JsonConvert.DeserializeObject(JSONSyntaxString);
对于(inti=0;i:)好的,所以当您将文本写入文件时,如果希望它以文本格式显示,您必须跟踪格式本身

假设您有一个制表符缩进,您想申请?还是换行

您必须将其写入文本格式

大概是这样的:

 string[] splitData = new string[150];
            var JSONSyntaxString = "{\"\tDataFile1\" :[\r\n";

            for (int i = 0; i < data.Length; i++)
            {
                JSONSyntaxString += "\t\t{\r\n";
                splitData = data[i].Split('|');
                for (int j = 0; j < dataFields.Length; j++)
                {
                    if (j == dataFields.Length - 1)
                    {
                        JSONSyntaxString += "\t\t\t\"" + dataFields[j] + "\":\"" + splitData[j] + "\"";
                    }
                    else
                    {
                        JSONSyntaxString += "\t\t\t\"" + dataFields[j] + "\":\"" + splitData[j] + "\",\r\n";
                    }
                }
                if (i == data.Length - 1)
                {
                    JSONSyntaxString += "\r\n\t\t}\r\n";
                }
                else
                {
                    JSONSyntaxString += "\r\n\t\t},\r\n";
                }
            }
            JSONSyntaxString = JSONSyntaxString + "]}";
            File.WriteAllText("E:\\Test\\OutputData.json", JSONSyntaxString);

我希望这足以帮助你自己完成作业:)

这是一项令人尖叫的学校作业。让我们看看你已经尝试了什么,并问一个具体的问题,你需要做什么才能实现你的目标。这不是一项工作服务。除非是作业,你应该告诉我们,你永远不应该写你自己的作业JSON。已经有太多错误的实现了,每次都要处理其中一个是一件非常头疼的事。也就是说,学习如何编写JSON的最好方法是仔细阅读规范并一步一步地浏览。这是家庭作业。我只是想了解下一步应该做什么。我我对C#和JSON@FranzGleichmann我几乎完成了。只是无法将其写入正确的格式。请查看已编辑的文档question@MortenBork.很抱歉。我没有太多使用stackoverflow。我已经编辑了这个问题
{"  DataFile1" :[
        {
            "Key":"SomeValueForKey",
            "Key2":"SomeValueForKey2"
        },
        {
            "Key":"SomeValueForKeyForAnotherItem",
            "Key2":"SomeOtherValueForAnotherItem2"
        }
]}