Разобрать вывод массива JSON с помощью PHP

0

У меня есть массив JSON, который возвращает PHP, например вывод из PHP:

[
  {
    "uid": "1",
    "username": "mike",
    "time_created": "2014-12-27 15:30:03",
    "time_updated": "2014-12-27 15:30:03",
    "time_expires": "2014-12-27 15:30:03"
  },
  {
    "uid": "2",
    "username": "jason",
    "time_created": "2014-12-27 15:31:41",
    "time_updated": "2014-12-27 15:31:41",
    "time_expires": "2014-12-27 15:31:41"
  },
  {
    "uid": "3",
    "username": "david",
    "time_created": "2014-12-27 18:10:53",
    "time_updated": "2014-12-27 18:10:53",
    "time_expires": "2014-12-27 18:10:53"
  }
]

Я попробовал несколько методов, я попробовал Iterator, я попытался использовать Array из JSonObject, но ничего не работает! Пока у меня есть этот пример кода:

QJsonDocument jsonResponse = QJsonDocument::fromJson(JData.toUtf8());
QJsonObject jsonObject = jsonResponse.object();
for (QJsonObject:: Iterator it = jsonObject.begin(); it != jsonObject.end(); ++it) {
QJsonArray array= (*it).toArray();
foreach (const QJsonValue & v, array)
qDebug() << v.toString();

Я попробовал несколько других способов, не повезло. Мне нужно перебирать данные JSON. Пожалуйста посоветуй. Я использую QT 5.4, C++.

  • 1
    Что вы подразумеваете под "ничто не похоже на работу"? Разместил ли код, который вы выложили, то, что вы ожидали, не скомпилировали и т. Д.
  • 0
    Как это не сработало? В чем специфика проблемы?
Теги:
arrays
qt

1 ответ

1
Лучший ответ

Просто проверил ваш код с первым помещением данных в QString (не подразумевая, что это нужно сделать, только для моего отладки). Несколько проблем найдено:

  1. Массив находится на верхнем уровне документа.
  2. QJsonValue :: toString() не удалось пересечь вложенную структуру, но QJsonValue (переменная v) все еще может быть напечатано через поток qDebug().

QString JsonStr =
"["
  "{"
    "\"uid\": \"1\","
    "\"username\": \"mike\","
    "\"time_created\": \"2014-12-27 15:30:03\","
    "\"time_updated\": \"2014-12-27 15:30:03\","
    "\"time_expires\": \"2014-12-27 15:30:03\""
  "},"
  "{"
    "\"uid\": \"2\","
    "\"username\": \"jason\","
    "\"time_created\": \"2014-12-27 15:31:41\","
    "\"time_updated\": \"2014-12-27 15:31:41\","
    "\"time_expires\": \"2014-12-27 15:31:41\""
  "},"
  "{"
    "\"uid\": \"3\","
    "\"username\": \"david\","
    "\"time_created\": \"2014-12-27 18:10:53\","
    "\"time_updated\": \"2014-12-27 18:10:53\","
    "\"time_expires\": \"2014-12-27 18:10:53\""
  "}"
"]";

QJsonDocument jsonResponse = QJsonDocument::fromJson(JsonStr.toUtf8());
QJsonArray array = jsonResponse.array();
// print
foreach (const QJsonValue & v, array)
{
    qDebug() << v;
}

// or parse
foreach (const QJsonValue& v, array)
{
    QJsonObject o = v.toObject();
    qDebug() << o["username"];
    qDebug() << o["time_expires"];
}
  • 0
    Спасибо сработало

Ещё вопросы

Сообщество Overcoder
Наверх
Меню