Я использую JSON для современного C ++.
И у меня есть файл JSON, который содержит некоторые данные, такие как:
{
"London": {
"Adress": "londonas iela 123",
"Name": "London",
"Shortname": "LL"
},
"Riga": {
"Adrese": "lidostas iela 1",
"Name": "Riga",
"Shortname": "RIX"
}
И я нашел способ изменить значения «Adrese», «Name», «Shortname».
Как видите, у меня «имя» и имя элемента ключа установлены на одно и то же.
Но мне нужно изменить и ключевой элемент, и значение «имя».
Так что в конце, когда каким-то образом в коде я изменяю его, это будет выглядеть так:
{
"Something_New": {
"Adress": "londonas iela 123",
"Name": "Something_New",
"Shortname": "LL"
},
"Riga": {
"Adrese": "lidostas iela 1",
"Name": "Riga",
"Shortname": "RIX"
}
Я пробовал:
/other_code/
json j
/functions_for_opening_json file/
j["London"]["Name"] = "Something_New"; //this changes the value "name"
j["London"] = "Something_New"; //But this replaces "London" with
"Something_new" and deletes all of its inside values.
Тогда я попробовал что-то вроде:
for(auto& el : j.items()){
if(el.key() == "London"){
el.key() = "Something_New";}
}
Но это тоже не сработало.
Я бы хотел что-то вроде j ["London"] = "Something_new" и чтобы в нем были все значения, которые изначально были для "London".