0、說明
QJsonArray中存儲了一系列的QJsonValue。可以向其中插入、刪除QJsonValue。
一個QJsonArray可以與QVariantList互相轉換。可以通過size()訪問其中的元素數,insert()、removeAt()移除其中的元素,並通過標准C++迭代模式進行迭代。
QJsonArray是個隱含的共享類,它與創建該類的Json文檔共享數據,也就是說修改數據時它們會同時改變。
可以從JSON中生成QJsonArray或者把QJsonArray轉化為JSON。
1、模塊和加載項
Header | #include<QJsonArray> |
qmake | QT += core |
Since | Qt 5.0 |
2、構造
QJsonArray(QJsonArray other) | 獲得另一個QJsonArray的副本 |
QJsonArray(QJsonArray &other) | 從另一個QJsonArray構造 |
QJsonArray(List<QJsonValue> args) | 從一個List<QJsonValue>中構造QJsonArray QJsonArray sedId = {1,2,3,4,5,6}; |
QJsonArray() | 構造一個空的QJsonArray |
3、靜態方法
返回值類型 |
方法 |
說明 |
QJsonArray | fromStringList(QStringList list) | 從一個QStringList構造QJsonArray List中的value將被轉換為JSON values |
QJsonArray | fromVariantList(QVariantList list) | 從一個QVariantList構造QJSonArray List中的value將被轉換為JSON values |
4、實例方法
返回值類型 |
方法 |
說明 |
QJsonArray & bool QJsonArray QJsonArray & QJsonArray & bool QJsonValue |
operator=(QJsonArray other) operator!=(QJsonArray other) operator+(QJsonValue value) operator+=(QJsonValue value) operator<<(QJsonValue value) operator==(QJsonArray other) operator[](int i) |
將另一個Array賦值給該Array 當兩個Array不相等時,返回true 生成一個包含兩個array所有元素的array 把另一個array附加到該array之后 往array之后添加一個元素,返回新array的引用 當兩個array相等時,返回true 提取索引i處的元素,也就是,可以用array[i]訪問元素 |
void | append(QJsonValue value) | 往array末尾加一個value |
QJsonValue | at(int i) | 返回array中索引為i的QJsonValue 如果i超限則返回Undefined類型的QJsonValue |
QJsonArray::iterator | begin() | 返回一個STL樣式的迭代器,指向array中的第一項 |
bool | contains(QJsonValue value) | 如果array中包含value,返回true |
int | count() | 等同於size(),元素數 |
bool | empty() | 等同於isEmpty(),是否為空 |
QJsonArray::iterator | end() | 返回一個STL迭代器,指向array中的最后一項 |
QJsonArray::iterator | erase(QJsonArray::iterator it) | 移除it指向的項,返回指向下一項的指針 |
QJsonValue | first() | 返回array中的第一個value,等同於at(0) |
void | insert(int i, QJsonValue value) | 在索引i處插入value |
bool | isEmpty() | array為空時返回true |
QJsonValue | last() | 返回array中的最后一個value,等同於at( size() - 1 ) |
void | pop_back() | 移除最后一個元素,等同於removeLast() 調用該方法前通常先用isEmpty()判斷array是否為空 |
pop_front() | 移除第一個元素,等同於removeFirst() 調用該方法前通常先用isEmpty()判斷array是否為空 |
|
prepend(const QJsonValue &value) | 在array首插入元素value | |
push_back(const QJsonValue &value) | 等同於append | |
push_front(const QJsonValue &value) | 等同於prepend | |
removeAt(int i) | 移除指定索引處的元素,0<= i < size() | |
removeFirst() | 移除第一個元素 | |
removeLast() | 移除最后一個元素 | |
replace(int i, QJsonValue value) | 用value取代索引i處的值 | |
int | size() | 返回元素個數 |
void | swap(QJsonArray &other) | 交換兩個array的元素 |
QJsonValue | takeAt(int i) | 移除並返回指定索引i處的元素 |
QVariantList | toVariantList() | 把QJsonArray轉換為VariantList |
5、用法
1)訪問QJsonArray中的所有QJsonValue:[i] 或 at(i)
for(int i=0;i<jsonarray.size();i++){ QJsonValue jval = jsonarray[i]; //...對jval的處理 }
6、QJsonValue、QJsonArray、QJsonObject、QJsonDocument之間的關聯
Qt:QJsonDocument以及與QJsonArray、QJsonObject、QJsonValue的關聯 - ShineLe - 博客園