首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QJson仅在QT中保存空值

QJson仅在QT中保存空值
EN

Stack Overflow用户
提问于 2015-03-13 00:08:58
回答 1查看 713关注 0票数 0

我正在使用QTCreator,我有这样的结构:

代码语言:javascript
复制
typedef struct
{
     QString i;
} stBookMark;

以下是其中的一些内容:

代码语言:javascript
复制
...
#include <QFile>
#include <QJsonArray>
#include <QJsonDocument>
#include <QVariantList>
#include <QVariant>
#include <QMetaType>

我还添加了这个:

代码语言:javascript
复制
Q_DECLARE_METATYPE(stBookMark)

问题出在这里的某个地方:

代码语言:javascript
复制
stBookMark x;
x.i = "Hello";

QVariant c;
c.setValue(x);

QVariantList a;
a.append(c);
a.append(0);
a.append(-119);

qDebug()<<a;

QJsonArray list = QJsonArray::fromVariantList(a);
QJsonDocument saveDoc(list);

qDebug()输出:(QVariant(stBookMark,),QVariant(int,0),QVariant(int,-119) )

输出.json文件如下:

代码语言:javascript
复制
[
    null,
    0,
    -119
 ]
EN

回答 1

Stack Overflow用户

发布于 2015-03-13 05:52:51

看起来你遗漏了一些跑腿工作才能正确地导出。本文档可能提供了您正在寻找的答案。

http://doc.qt.io/qt-5/qmetatype.html#details

http://doc.qt.io/qt-5/qvariant.html#setValue

http://doc.qt.io/qt-5/qvariant.html#value

http://doc.qt.io/qt-5/qvariant.html#fromValue

如果您的主要目标是从JSON存储和检索值,那么您可能不需要在QVariant上强调。尝试深入这个例子,看看他们是如何通过添加read(QJsonObject)write(QJsonObject)来处理所有的结构和对象的。

http://doc.qt.io/qt-5/qtcore-json-savegame-example.html

http://doc.qt.io/qt-5/json.html

希望这能有所帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29014779

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档