Qt 的 JSON 库由几种对象和相应的头文件组成,主要的有: QJsonDocument 该类用于操作 JSON 文档。 从文件到文档对象实例: QJsonDocument jDoc(QJsonDocument::fromJson(file.readAll())) 此外还有 fromBinaryData() 或 fromRawData() 方法。 JSON 对象 obj 到 文档 到文件: QJsonDocument jDoc(obj); file.write(jDoc.toJson(QJsonDocument::Indented)); QJsonObject QJsonObject 是一个重要的类型,它就是 JSON 中的“对象”概念。一个对象就是一个键值对。 使用 insert() 插入一个键值对或覆盖一个已存在的键值对还可以删掉一个键值对, 用 remove() 可以删除一个键值对。 QJsonArray 它是 JSON 数组类,可以存储多个没有键的值(QJsonValue) QJsonValue QJsonValue 也是一个重要的常用类型,它是键值对的值或是数组的值。而值可以是一个键值对,也可以是一个数组,还可以是其它类型: bool(QJsonValue::Bool) double(QJsonValue::Double) string(QJsonValue::String) array(QJsonValue::Array) object(QJsonValue::Object) null(QJsonValue::Null) 要操作一个对象类型的值,要先把值转换成对象副本才可以: QJsonValue.toObject() 所以不能直接修改一个值 ValueA 下面的某个键的值 ValueB,只能将这个值 ValueA 转换成 ObjectA 然后修改 Object 的某个键的值 ValueB,然后再用对象 ObjectA 覆盖 ValueA(可以用 insert 方法)。如果要修改多层次的某个值,就要采用递归的方法一级一级找到要修改的值,然后用高层次的对象覆盖。这点就比 python 的 json 数据操作麻烦...