Сериализация и десириализация нескольких JSON в C#
У меня есть три txt-файла, которые содержат одни и те же данные Json, я хочу прочитать их все в объектах класса c# и перезаписать все объекты из значения текстового поля во всех файлах одновременно
короче говоря у меня есть эти поля общие во всех трех текстовых файлах
"время":"112429",
"код":"R123",
я хочу сохранить их значения в классе объектов c# из всех трех файлов одновременно
а затем перезаписать одни и те же значения объекта, предоставленные значением текстового поля для всех атрибутов, считываемых тремя различными файлами
код для чтения данных одного файла
using (FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read)) { _orderRequest = (OrderRequest)JsonReader.ReadRecord(fs, _recordManager, TicketingRecordNames.OrderRequest); }
мой класс объектов
public class OrderRequest { public string org; public string raff; public string time; public string user; public OrderRequest _orderRequest; }
Файл 1 Сведения
{ "org":"OrgTest", "raff":"Raffle1", "time":"112828", "user":"User1", }
Файл 2 Данные
{ "org":"OrgTest", "raff":"Raffle1", "time":"112828", "user":"User111", }
Что я уже пробовал:
я пробовал сериализацию пакетов newtonsoft json, но не смог загрузить несколько текстовых файлов json для чтения, а также не смог перезаписать значения объектов нескольких файлов
F-ES Sitecore
Возможно, вам придется либо загрузить содержимое трех файлов и объединить их в одну строку, которая затем может быть десериализована в один объект, либо создать три объекта для каждого из файлов для десериализации, а затем просто скопировать свойства из специфичных для файла объектов в ваш основной объект.
Member 13888852
но как я могу объединить три текстовых файла json данные в один
F-ES Sitecore
Теперь я вижу, что файлы имеют ту же самую стриктуру. Свойство может содержать только одно значение, если вы планируете иметь все данные из всех файлов в одном классе, вам лучше использовать какой-то список
публичный класс MyData
{
публичный список запросов & lt;OrderRequest> { get; set; }
}
Загрузите каждый файл в новый экземпляр OrderRequest и добавьте его в свойство Requests.
Graeme_Grant
Поставьте образец всех 3 и желаемый результат.
Один из методов состоит в том, чтобы загрузить каждый JSON-файл и десериализовать его в отдельные списки, а затем объединить все 3 в один. Теперь он готов для редактирования вашим пользователем.
Member 13888852
можете ли вы пожалуйста помочь с кодом для предоставления нескольких файлов
я использовал этот код для чтения одного файла
используя (файлового потока ФС = новый хранилище FileStream(Путь, содержит filemode.Открытия, Флагами Fileaccess.Читать))
{
_orderRequest = (OrderRequest)JsonReader.ReadRecord(fs, _recordManager, TicketingRecordNames.OrderRequest);
}
Graeme_Grant
Пожалуйста, обновите свой вопрос с помощью кода, чтобы мы могли видеть, что вы делаете...
У меня также есть подробный учебник здесь: Работа с JSON в C# и VB[^]
Member 13888852
я обновил код пожалуйста проконсультируйтесь
Graeme_Grant
Итак, все 3 файла имеют JSON в одном формате? А пользовательский ввод-это разрешение конфликтов, когда есть несколько записей с одним и тем же ключом? ie: пользователь выбирает, какие записи хранить?
Gerry Schmitz
Возможно, концепция "итерации" по 3 файлам для достижения того, что вы хотите, вам чужда. Смотрите раздел "for loop".
Или вы пытаетесь "объединить файлы"? С "дубликатами"или без них.
Вы пытаетесь лечить файлы журналов?