C++ qt-json编码关联数组和对象

C++ qt-json编码关联数组和对象,c++,json,qt,encode,C++,Json,Qt,Encode,搜索后发现没有合适的, 我需要将字符串编码为json,就像php中的json_编码一样,但是在Qt中。Qt支持json编码吗?还是应该使用第三方库? 我需要对以下内容进行编码: array( 'SourceLanguage' => 'autodetect', 'Source' => array( 'Extension' => '.pdf', 'Content' => 'some

搜索后发现没有合适的, 我需要将字符串编码为json,就像php中的json_编码一样,但是在Qt中。Qt支持json编码吗?还是应该使用第三方库? 我需要对以下内容进行编码:

array(
    'SourceLanguage' => 'autodetect',
    'Source' => array(
                    'Extension' => '.pdf',
                    'Content' => 'somecontent'
                ),
                'ProcessingTimeout' => 1000,
                'UserDomainModelName' => ''
);
PS:我找到了一些像JsonObject、JsonArray、JsonValue之类的东西,但它们的文档没有任何示例,这让我很头疼,请提供帮助

将字符串编码为json,就像php中的json_编码一样

由于示例中提供的数组不是字符串,而是php数据类型,因此Qt不知道如何对该数组的字符串表示进行编码

如果要直接对该数据进行编码,可以这样做,首先构建内部数组:-

QJsonObject innerArrayObject;
innerArrayObject["Extension"] = QString(".pdf");
innerArrayObject["Content"] = Qstring("somecontent");

QJsonArray innerArray;
innerArray.append(innerArrayObject);

QJsonObject content;
content["SourceLanguage"] = QString("autodetect");
content["source"] = innerArray;
content["ProcessingTimeout"] = 1000;
content["UserDomainModelName"] = QString("");

QJsonArray outerArray;
outerArray.append(content);
然后,您可以将顶级数组添加到QJsonObject根对象中,将其放置在文档中并打印出内容

QJsonObject obj;
obj["root"] = outerArray;

qDebug() << QJsonDocument(obj).toJson(QJsonDocument::Compact);

你确定你在意的是编码而不是解码吗?@VictorPolevoy,我肯定OP的意思是编码。你将无法解码给定的结构,因为它不是有效的JSON。是的,当然,维克托,是的,对,梅林没问题,让我们知道你进展如何。