使用 qt5 通过 websocket 发送 Json

Send Json over websocket with qt5

我试过了

QJsonObject pC;
pC.insert("pC","false" "Uab" "CTOMAN" "1" "1" );
a=conexion.sendTextMessage(pC.value("pC").toString());

而且我应该从服务器得到响应,问题很可能出在 JSON 的序列化中,但我不知道如何正确执行它。

在 javascript 中声明并被证明有效的 JSON 是这样的

var pC = ["false", "Uab", "CTOMAN", 1, 1]

如果你要获取的JSON是

{
    "pC": [
        "false",
        "Uab",
        "CTOMAN",
        1,
        1
    ]
}

可以使用QJsonArray然后插入QJsonObject:

QJsonObject json;
json["pC"] = QJsonArray() << "false" << "Uab" << "CTOMAN" << 1 << 1;
// Same as  json.insert("pC", QJsonArray() << "false" << "Uab" << "CTOMAN" << 1 << 1);

你必须小心引号,如果你想要 false 作为字符串,那么将它放在引号之间,如果你想要它作为 boolean 类型,那么做 用引号括起来。同样适用于数字,如果你想要数字作为 integer 然后做 not 将它括在引号中。

QJsonObject json;
json["booleanAndInt"]    = QJsonArray() <<  false  <<  1;
json["booleanAndString"] = QJsonArray() <<  false  << "1";
json["stringAndInt"]     = QJsonArray() << "false" <<  1;
json["stringAndString"]  = QJsonArray() << "false" << "1";

将创建以下 JSON:

{
    "booleanAndInt": [
        false,
        1
    ],
    "booleanAndString": [
        false,
        "1"
    ],
    "stringAndInt": [
        "false",
        1
    ],
    "stringAndString": [
        "false",
        "1"
    ]
}