У меня проблема, и я не могу понять это сам .. В моей программе у меня есть автообновление, когда моя программа обновляет новый (измененный, некоторые новые ключи) файл конфигурации создано. то, что я хочу, чтобы моя программа выполняла, - это когда она обновляется, чтобы посмотреть оба файла конфигурации (старые и новые) и перенести старые параметры, соответствующие ключу в новом файле, в новый файл.Передача значений между 2 конфигурационными файлами
Это пример старого файла:
{
"Setting1": false,
"Setting2": 123,
"Setting3": "test",
"LocationList": {
"Country": "NL",
"Locations": [
{
"Latitude": 38.556807486461118,
"Longitude": -121.2383794784546
},
{
"Latitude": -33.859019,
"Longitude": 151.213098
},
{
"Latitude": 47.5014969,
"Longitude": -122.0959568
},
{
"Latitude": 51.5025343,
"Longitude": -0.2055027
}
]
}
}
И это может быть новый файл (также может быть различным):
{
"Setting1": null,
"Setting2": null,
"Setting3": "",
"Setting4": ""
"LocationList": {
"Country": "",
"Locations": [
{
"Latitude": null,
"Longitude": null
},
{
"Latitude": null,
"Longitude": null
}
]
}
}
Ожидаемый результат:
{
"Setting1": false,
"Setting2": 123,
"Setting3": "test",
"Setting4": ""
"LocationList": {
"Country": "NL",
"Locations": [
{
"Latitude": 38.556807486461118,
"Longitude": -121.2383794784546
},
{
"Latitude": -33.859019,
"Longitude": 151.213098
},
{
"Latitude": 47.5014969,
"Longitude": -122.0959568
},
{
"Latitude": 51.5025343,
"Longitude": -0.2055027
}
]
}
}
Во-первых, я посмотрел на создание класса в C# и просто десериализую его, затем я пришел к выводу, что это невозможно. se i не знаю, как будет выглядеть конфигурация.
Во-вторых, я подумал, что использование динамика сделает трюк, но этого не произошло, потому что я не знал никаких ключей, которые были в нем. И не мог понять, как это понять.
И, наконец, я уже посмотрел, если это будет возможно с помощью регулярных выражений, для меня, это кажется невозможным ..
Может кто-нибудь дать мне некоторые идеи о том, как они будут это делать? Мне не нужен код, просто нажмите в правильном направлении.
P.S. я не хочу комбинировать два, когда есть ключ в старом файле, но не в новом, его не нужно переносить (только списки будут полностью перенесены из старого файла, также когда список пустым/заполненным новым).
вы можете редактировать свой вопрос, чтобы добавить ожидаемые результаты – Louis
@Louis, я редактировал вопрос! –
Это будет плохой дизайн. Второй файл конфигурации может иметь нулевые значения и пустые строки. Тем не менее, вы можете десериализовать оба файла конфигурации в словари и рекурсивно объединить словари. – sturcotte06