У меня есть текстовый файл, содержащий данные, и другой текстовый файл, содержащий поля данных. Я могу читать данные и поля данных в отдельный массив
Мне удалось преобразовать его в JsonFormat. Но когда я пишу его в файле json, он не форматируется должным образом, как данные json. Как бы он принял правильный формат? Также я не хочу использовать сериализацию или сторонние библиотеки.
Мой файл входных данных содержит 102 строки, в которых 1-ю и последнюю можно игнорировать. Каждая строка соответствует одной записи. Так что у него около 100 записей. Каждая запись содержит 150 полей, разделенных знаком |.
Пример записи:
928338219 || 3HY83 || A | Z5 | 20030917 | 20160629 | 20150630 | 20150630 | УПРАВЛЕНИЕ ФЕДЕРАЛЬНЫМИ ДОРОГАМИ || УПРАВЛЕНИЕ ПРИОБРЕТЕНИЯМИ И ГРАНТАМИ || 1200 NEW J SE || ВАШИНГТОН | DC | 20590 | 0001 | США | 98 | 19720101 | 0930 || 2A ||| 0003 | 2R ~ NG ~ VW | 926120 | 0001 | 926120N | 0000 |||| 1200 NEW JERSEY AVENUE, SE | НОМЕР E65-101 | ВАШИНГТОН | 20590 | 0001 | США | DC | FRANK WALTOS || WALTOS || 1200 NEW JERSEY AVENUE, SE | НОМЕР E65-312 | ВАШИНГТОН | 20590 | 0001 | США | DC | 2023664205 ||| 2023663705 | Фрэнк. Waltos@dot.gov | FRANK || WALTOS || 1200 NEW JERSEY AVENUE SE | ROOM E65-312 | WASHINGTON | 20590 | 0001 | USA | DC | 2023664205 ||| 2023663705 | Frank. Waltos@dot.gov |||||| ||||||||||||||||||||||||||| FRANK || WALTOS || 1200 NEW JERSEY AVENUE SE | НОМЕР E65-312 | ВАШИНГТОН | 20590 | 0001 | USA | DC | 2023664205 ||| 2023663705 | Frank. Waltos@dot.gov | JASON || JOHNSON || 1200 NEW JERSEY AVENUE SE || WASHINGTON | 20590 | 0001 | USA | DC | 2023665880 ||| 2023663705 | jason. johnson@dot.gov | 0000 || N || 0000 ||| 0000 ||! End
Файл DataFields содержит 150 полей
образец:
DUNS
DUNS + 4
КОД КЕЙДЖИ
DODAA C
КОД ВЫДЕРЖКИ 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": ""}.
Я проверил свою строку JSON в Jsonlint, и это действительная 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);