first json parse code
This commit is contained in:
parent
1462f9ef1c
commit
4050358462
14 changed files with 99 additions and 7 deletions
|
@ -19,11 +19,18 @@
|
||||||
#include "PictureDialog.h"
|
#include "PictureDialog.h"
|
||||||
#include "ui_PictureDialog.h"
|
#include "ui_PictureDialog.h"
|
||||||
|
|
||||||
|
#include <QJsonDocument>
|
||||||
|
#include <QJsonObject>
|
||||||
|
#include <QVariantMap>
|
||||||
|
#include <QJsonArray>
|
||||||
|
#include <QDebug>
|
||||||
|
|
||||||
PictureDialog::PictureDialog(QWidget *parent) :
|
PictureDialog::PictureDialog(QWidget *parent) :
|
||||||
QDialog(parent),
|
QDialog(parent),
|
||||||
ui(new Ui::PictureDialog)
|
ui(new Ui::PictureDialog)
|
||||||
{
|
{
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
|
jsonDrawString = ui->labJSON->text();
|
||||||
}
|
}
|
||||||
|
|
||||||
PictureDialog::~PictureDialog()
|
PictureDialog::~PictureDialog()
|
||||||
|
@ -35,3 +42,38 @@ void PictureDialog::setSnapmaticPicture(QPixmap pixmap)
|
||||||
{
|
{
|
||||||
ui->labPicture->setPixmap(pixmap);
|
ui->labPicture->setPixmap(pixmap);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void PictureDialog::setJsonString(QString jsonStr)
|
||||||
|
{
|
||||||
|
QJsonDocument jsonDocument = QJsonDocument::fromJson(jsonStr.toLatin1());
|
||||||
|
QJsonObject jsonObject = jsonDocument.object();
|
||||||
|
QVariantMap jsonMap = jsonObject.toVariantMap();
|
||||||
|
|
||||||
|
QString locX;
|
||||||
|
QString locY;
|
||||||
|
QString locZ;
|
||||||
|
QStringList plyrsList;
|
||||||
|
|
||||||
|
if (jsonMap.contains("loc"))
|
||||||
|
{
|
||||||
|
QJsonObject locObject = jsonObject["loc"].toObject();
|
||||||
|
QVariantMap locMap = locObject.toVariantMap();
|
||||||
|
if (locMap.contains("x")) { locX = locMap["x"].toString(); }
|
||||||
|
if (locMap.contains("y")) { locY = locMap["y"].toString(); }
|
||||||
|
if (locMap.contains("z")) { locZ = locMap["z"].toString(); }
|
||||||
|
}
|
||||||
|
if (jsonMap.contains("plyrs"))
|
||||||
|
{
|
||||||
|
plyrsList = jsonMap["plyrs"].toStringList();
|
||||||
|
}
|
||||||
|
|
||||||
|
QString plyrsStr;
|
||||||
|
foreach (const QString &player, plyrsList)
|
||||||
|
{
|
||||||
|
plyrsStr.append(", ");
|
||||||
|
plyrsStr.append(player);
|
||||||
|
}
|
||||||
|
if (plyrsStr.length() >= 1) { plyrsStr.remove(0,2); }
|
||||||
|
|
||||||
|
ui->labJSON->setText(jsonDrawString.arg(locX, locY, locZ, plyrsStr));
|
||||||
|
}
|
||||||
|
|
|
@ -32,10 +32,12 @@ class PictureDialog : public QDialog
|
||||||
public:
|
public:
|
||||||
explicit PictureDialog(QWidget *parent = 0);
|
explicit PictureDialog(QWidget *parent = 0);
|
||||||
void setSnapmaticPicture(QPixmap pixmap);
|
void setSnapmaticPicture(QPixmap pixmap);
|
||||||
|
void setJsonString(QString jsonStr);
|
||||||
~PictureDialog();
|
~PictureDialog();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Ui::PictureDialog *ui;
|
Ui::PictureDialog *ui;
|
||||||
|
QString jsonDrawString;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // PICTUREDIALOG_H
|
#endif // PICTUREDIALOG_H
|
||||||
|
|
|
@ -33,6 +33,14 @@
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="labJSON">
|
||||||
|
<property name="text">
|
||||||
|
<string>Location: X: %1 Y: %2 Z: %3
|
||||||
|
Players: %4</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
<resources/>
|
<resources/>
|
||||||
|
|
|
@ -92,15 +92,12 @@ bool SnapmaticPicture::readingPicture()
|
||||||
if (!picFile->isReadable())
|
if (!picFile->isReadable())
|
||||||
{
|
{
|
||||||
lastStep = "2;/3,ReadingFile," + convertDrawStringForLog(picFileName) + ",3,NOJSON";
|
lastStep = "2;/3,ReadingFile," + convertDrawStringForLog(picFileName) + ",3,NOJSON";
|
||||||
qDebug() << lastStep;
|
|
||||||
}
|
}
|
||||||
else if (picFile->read(4) != "JSON")
|
else if (picFile->read(4) != "JSON")
|
||||||
{
|
{
|
||||||
lastStep = "2;/3,ReadingFile," + convertDrawStringForLog(picFileName) + ",3,CTJSON";
|
lastStep = "2;/3,ReadingFile," + convertDrawStringForLog(picFileName) + ",3,CTJSON";
|
||||||
qDebug() << lastStep;
|
|
||||||
}
|
}
|
||||||
QByteArray jsonRawContent = picFile->read(jsonStreamLength);
|
QByteArray jsonRawContent = picFile->read(jsonStreamLength);
|
||||||
qDebug() << jsonRawContent.toHex();
|
|
||||||
jsonStr = getSnapmaticJSONString(jsonRawContent);
|
jsonStr = getSnapmaticJSONString(jsonRawContent);
|
||||||
|
|
||||||
return cachePicture.loadFromData(jpegRawContent);
|
return cachePicture.loadFromData(jpegRawContent);
|
||||||
|
@ -111,7 +108,7 @@ QString SnapmaticPicture::getSnapmaticPictureString(QByteArray snapmaticHeader)
|
||||||
QByteArray snapmaticUsefulBytes = snapmaticHeader.left(snapmaticUsefulLength);
|
QByteArray snapmaticUsefulBytes = snapmaticHeader.left(snapmaticUsefulLength);
|
||||||
snapmaticUsefulBytes.replace(QByteArray::fromHex("00"),"");
|
snapmaticUsefulBytes.replace(QByteArray::fromHex("00"),"");
|
||||||
snapmaticUsefulBytes.replace(QByteArray::fromHex("01"),"");
|
snapmaticUsefulBytes.replace(QByteArray::fromHex("01"),"");
|
||||||
return QString::fromAscii(snapmaticUsefulBytes);
|
return QString::fromLatin1(snapmaticUsefulBytes);
|
||||||
}
|
}
|
||||||
|
|
||||||
QString SnapmaticPicture::getSnapmaticJSONString(QByteArray jsonBytes)
|
QString SnapmaticPicture::getSnapmaticJSONString(QByteArray jsonBytes)
|
||||||
|
@ -119,7 +116,7 @@ QString SnapmaticPicture::getSnapmaticJSONString(QByteArray jsonBytes)
|
||||||
QByteArray jsonUsefulBytes = jsonBytes;
|
QByteArray jsonUsefulBytes = jsonBytes;
|
||||||
jsonUsefulBytes.replace(QByteArray::fromHex("00"),"");
|
jsonUsefulBytes.replace(QByteArray::fromHex("00"),"");
|
||||||
jsonUsefulBytes.replace(QByteArray::fromHex("0C"),"");
|
jsonUsefulBytes.replace(QByteArray::fromHex("0C"),"");
|
||||||
return QString::fromAscii(jsonUsefulBytes);
|
return QString::fromLatin1(jsonUsefulBytes);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool SnapmaticPicture::readingPictureFromFile(QString fileName)
|
bool SnapmaticPicture::readingPictureFromFile(QString fileName)
|
||||||
|
|
32
app.rc
Executable file
32
app.rc
Executable file
|
@ -0,0 +1,32 @@
|
||||||
|
//IDI_ICON1 ICON DISCARDABLE "gta5sync.ico"
|
||||||
|
|
||||||
|
#include <windows.h>
|
||||||
|
|
||||||
|
VS_VERSION_INFO VERSIONINFO
|
||||||
|
FILEVERSION 1, 0, 0, 0
|
||||||
|
PRODUCTVERSION 1, 0, 0, 0
|
||||||
|
FILEFLAGSMASK 0x3fL
|
||||||
|
FILEFLAGS 0
|
||||||
|
FILEOS VOS_NT_WINDOWS32
|
||||||
|
FILETYPE VFT_APP
|
||||||
|
FILESUBTYPE VFT2_UNKNOWN
|
||||||
|
BEGIN
|
||||||
|
BLOCK "VarFileInfo"
|
||||||
|
BEGIN
|
||||||
|
VALUE "Translation", 0x0409, 1200
|
||||||
|
END
|
||||||
|
BLOCK "StringFileInfo"
|
||||||
|
BEGIN
|
||||||
|
BLOCK "040904b0"
|
||||||
|
BEGIN
|
||||||
|
VALUE "CompanyName", "Syping Gaming Team\0"
|
||||||
|
VALUE "FileDescription", "Grand Theft Auto V Sync\0"
|
||||||
|
VALUE "FileVersion", "1.0.0.0\0"
|
||||||
|
VALUE "InternalName", "gta5sync\0"
|
||||||
|
VALUE "LegalCopyright", "Copyright © 2015-2016 Syping Gaming Team\0"
|
||||||
|
VALUE "OriginalFilename", "gta5sync.exe\0"
|
||||||
|
VALUE "ProductName", "Grand Theft Auto V Sync\0"
|
||||||
|
VALUE "ProductVersion", "1.0.0.0\0"
|
||||||
|
END
|
||||||
|
END
|
||||||
|
END
|
|
@ -19,6 +19,7 @@
|
||||||
QT += core gui
|
QT += core gui
|
||||||
|
|
||||||
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets json
|
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets json
|
||||||
|
isEqual(QT_MAJOR_VERSION, 5): DEFINES += QT5_MODE
|
||||||
|
|
||||||
TARGET = gta5sync
|
TARGET = gta5sync
|
||||||
TEMPLATE = app
|
TEMPLATE = app
|
||||||
|
@ -37,7 +38,9 @@ FORMS += \
|
||||||
|
|
||||||
RESOURCES +=
|
RESOURCES +=
|
||||||
|
|
||||||
OTHER_FILES +=
|
OTHER_FILES += app.rc
|
||||||
|
|
||||||
|
win32: RC_FILE += app.rc
|
||||||
|
|
||||||
# QT4 ONLY STUFF
|
# QT4 ONLY STUFF
|
||||||
|
|
||||||
|
|
3
main.cpp
3
main.cpp
|
@ -48,9 +48,10 @@ int main(int argc, char *argv[])
|
||||||
qDebug() << picture.readingPictureFromFile(arg1);
|
qDebug() << picture.readingPictureFromFile(arg1);
|
||||||
qDebug() << picture.getLastStep();
|
qDebug() << picture.getLastStep();
|
||||||
PictureDialog picDialog;
|
PictureDialog picDialog;
|
||||||
|
picDialog.setWindowFlags(picDialog.windowFlags()^Qt::WindowContextHelpButtonHint);
|
||||||
picDialog.setWindowTitle(picture.getPictureStr());
|
picDialog.setWindowTitle(picture.getPictureStr());
|
||||||
qDebug() << picture.getJsonStr();
|
|
||||||
picDialog.setSnapmaticPicture(picture.getPixmap());
|
picDialog.setSnapmaticPicture(picture.getPixmap());
|
||||||
|
picDialog.setJsonString(picture.getJsonStr());
|
||||||
picDialog.show();
|
picDialog.show();
|
||||||
|
|
||||||
return a.exec();
|
return a.exec();
|
||||||
|
|
1
qjson4/QJsonArray
Executable file
1
qjson4/QJsonArray
Executable file
|
@ -0,0 +1 @@
|
||||||
|
#include "QJsonArray.h"
|
1
qjson4/QJsonDocument
Executable file
1
qjson4/QJsonDocument
Executable file
|
@ -0,0 +1 @@
|
||||||
|
#include "QJsonDocument.h"
|
1
qjson4/QJsonObject
Executable file
1
qjson4/QJsonObject
Executable file
|
@ -0,0 +1 @@
|
||||||
|
#include "QJsonObject.h"
|
1
qjson4/QJsonParseError
Executable file
1
qjson4/QJsonParseError
Executable file
|
@ -0,0 +1 @@
|
||||||
|
#include "QJsonParseError.h"
|
1
qjson4/QJsonRoot
Executable file
1
qjson4/QJsonRoot
Executable file
|
@ -0,0 +1 @@
|
||||||
|
#include "QJsonRoot.h"
|
1
qjson4/QJsonValue
Executable file
1
qjson4/QJsonValue
Executable file
|
@ -0,0 +1 @@
|
||||||
|
#include "QJsonValue.h"
|
1
qjson4/QJsonValueRef
Executable file
1
qjson4/QJsonValueRef
Executable file
|
@ -0,0 +1 @@
|
||||||
|
#include "QJsonValueRef.h"
|
Loading…
Reference in a new issue