2015-01-02 4 views
0

У меня есть массив JSON, который возвращает PHP, пример вывод PHP:Анализировать JSON выходного массива с помощью 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" 
    } 
] 

Я попробовал несколько методов, я попытался итератор, я попытался ToArray от 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

Что вы имеете в виду "ничего не похоже на работу"? Был ли код, который вы опубликовали, делать не так, как вы ожидали, не смог ли он скомпилировать и т. Д. И т. Д.? – MrEricSir

+0

Как это не сработало? В чем специфика проблемы? – jww

ответ

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

Спасибо, это сработало – JustACPPFan

Смежные вопросы