An open API service indexing awesome lists of open source software.

https://github.com/downstize/section-to-json-converter

Консольное приложение на C#, преобразующее структурированный текст с разделами в вложенный JSON.
https://github.com/downstize/section-to-json-converter

console converter csharp dotnet9 json parser regex

Last synced: about 1 month ago
JSON representation

Консольное приложение на C#, преобразующее структурированный текст с разделами в вложенный JSON.

Awesome Lists containing this project

README

          

# 📚 section-to-json-converter

**Консольное приложение на C# для преобразования текстовой иерархии разделов в JSON-структуру.**
Проект реализован на **.NET 9**, с возможностью чтения из файла и сохранением результата в удобочитаемом JSON-формате.

---

## 📌 Функциональность

* Чтение текстового файла с разделами и подзаголовками (`1`, `1.1`, `1.1.1`, …).
* Преобразование структуры в корректный **вложенный JSON**.
* Поддержка:

* вложенных уровней разделов
* разделов с содержимым и без
* Вывод результата в файл `output.json`.

---

## 🛠️ Технологии

* **.NET 9 (Console Application)**
* **System.Text.Json** (сериализация)
* **Regular Expressions** (распознавание разделов)
* **Stack + Dictionary** (построение структуры)

---

## 📂 Структура проекта

```
📦 section-to-json-converter
┣ 📂 data-files # Входные и выходные данные
┃ ┣ 📄 content_eng.txt # Исходный текстовый файл
┃ ┗ 📄 output.json # Результат преобразования
┣ 📄 Program.cs # Основная логика программы
┣ 📄 section-to-json-converter.csproj
┣ 📄 section-to-json-converter.sln
```

---

## 🚀 Запуск проекта

1️⃣ Склонируйте репозиторий и откройте проект:

```bash
git clone https://github.com/Downstize/section-to-json-converter.git
cd section-to-json-converter
```

2️⃣ Убедитесь, что файл `content_eng.txt` лежит в папке `data-files`.

3️⃣ Запустите проект из IDE или через .NET CLI:

```bash
dotnet run
```

4️⃣ Результат будет сохранён в:

```
data-files/output.json
```

---

## 📄 Пример

Исходный файл `content_eng.txt`:

```
1 Общий раздел
Описание
2 Технический раздел
2.1 Подраздел A
Текст A
2.2 Подраздел B
Текст B
```

Результат (`output.json`):

```json
{
"1 Общий раздел": "Описание",
"2 Технический раздел": {
"2.1 Подраздел A": "Текст A",
"2.2 Подраздел B": "Текст B"
}
}
```

---

## 📌 Как это работает

🔢 Программа определяет, что строка начинается с числа — это новый раздел.
🧱 Использует **стек** для построения вложенности.
🧾 Текст после раздела — это содержимое, если нет вложенных разделов.

---

## 🗂 Папка data-files

Используется как рабочая директория:

| Файл | Назначение |
| ----------------- | ----------------------------------- |
| `content_eng.txt` | Входные данные (структура разделов) |
| `output.json` | Результат работы программы |

---

## ✉️ Контакты

Разработчик: **Вячеслав / Venceslao**
GitHub:
[https://github.com/Downstize/section-to-json-converter.git](https://github.com/Downstize/section-to-json-converter.git)
Email:
`swankydid@gmail.com`