LINUX.ORG.RU

Как из QJsonObject вытащить лист координат ?

 ,


0

2

В json есть такое: "lats": [77.77, 23,56], Хочу вытащить эти числа, как правильно сделать ?

obj["lats"].toString(); дает пустую строку.

Мне нужно эти числа получить в виде строк, то есть не хочется через toDouble, чтобы исключить вероятность потери точности.

Так там же массив. Да и всё равно значение будет уже в QDouble.
Но если так сильно хочется строку, то наверное что-то вроде этого заработает:

QList<QString> getLatitudes(const QJsonObject& obj)
{
  QList<QString> result;
  QJsonArray lats = obj["lats"].toArray();

  for (const QJsonValue value : lats) {
    result.append(value.toVariant().toString());
  }

  return result;
}

sanwashere ★★
()
  QStringList result;
  const auto array = obj["lats"].toArray();
  std::transform(array.begin(), array.end(), std::back_inserter(result),
                 [](const auto &value) { return value.toString(); });

Что же насчёт потери точности, JSON не тот формат, чтобы об этом беспокоиться, потеря уже произошла в момент конвертации числа в текст.

unC0Rr ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.