Объедините значения и ключи, чтобы сформировать объект JSON - PullRequest
0 голосов
/ 22 мая 2019

У меня есть ключи и значения в виде строк, и мне нужно объединить их в формате json.

Например: мой "keys" строковый массив: {"a","b","c","d"} мой "values" строковый массив.пройти через цикл for, как он хранится в массиве X

X[0], X[1], X[2] and so on..

как мне объединить "keys" и "values", чтобы выглядеть так:

{ "a":"x","b":"y", "c":"z", "d":"q"
}

У меня естьпопытался повторить и объединить, но я застрял

std::string values="";
std::string keys[4]={"a","b","c","d"};
..
..
..
for(int i=0;i<4;i++)
{
    values= values + "," + x[i];
}

Я не уверен, как мне объединить эти две строки и отобразить результирующую строку, которая выглядит следующим образом:

{ "a":"x",
  "b":"y",
  "c":"z",
  "d":"q"
}

1 Ответ

2 голосов
/ 22 мая 2019

Ручной способ можно сделать так:

std::string res = "{";
std::string keys[4]={"a","b","c","d"};
std::string values[4]={"a","b","c","d"};
const char* sep = "";

for(int i=0;i<4;i++)
{
    res += sep + keys[i] + ":" + values[i];
    sep = ",";
}
res += "}";

Используя любую библиотеку json, вы можете сделать что-то вроде:

Json::Value root(Json::ValueType::objectValue);

for (int i = 0; i < 4; i++) {
    root[keys[i]] = values[i];
}

Json::StyledWriter writer;
writer.write(root);
...