1. 程式人生 > >Qt讀取JSON和XML資料

Qt讀取JSON和XML資料

QJSON

JSON(JavaScript Object Notation)是一個輕量級的資料交換格式; 可以將資料以name/value的形式任意組合;

QJson 是一個基於Qt的庫, 將JSON的資料map成name-QVariant的形式, 或者進行反相轉換; 通過Q_PROPERTY還可以轉換QObject類中的資料;

Build 測試時在Windows下進行, 所以我嘗試用IDE的方式編譯: 
1. 用QtCreator開啟CMakeList.txt, 進行Configure; 
2. 生成了qjson專案, Build All 

Note 這裡有個error, '_strtoui64' was not declared in this scope, 是作者在修VS2012的bug時introduce的, 只要找到json_scanner.cc, 把strtoll和strtoull兩個巨集註釋掉就行;

3. 在Qt專案中引入QJSN的library, QJSON對QtCore有dependency.  e.g. LIBS+=-L"PathToQJSONLib"-l"qjson"

Note 注意環境變數中的各種Qt版本, QJSON中的CMake會自動搜尋任意的Qt Binary, 需要手動設定Qt路徑, 否則會出現庫版本不一致的問題; 

e.g. 格式: String必須用"" 包括起來, 使用"\"來轉義字元;

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 QString query("{\"name\":\"newName\",\"size\":\"Godzilla\", \"price\":111.222}"); //parse QByteArray json = query.toUtf8(); QJson::Parser parser; bool ok; QVariantMap result = parser.parse (json, &ok).toMap(); if (ok) { QHash<int, QByteArray> roleNames = item->roleNames();
QHash<int, QByteArray>::iterator iter; for (iter = roleNames.begin(); iter != roleNames.end(); ++iter) { if (result.value(iter.value()).isValid()) item->setData(iter.key(), result.value(iter.value())); else cout<<"no data"<<endl; cout<<(int)(iter.key())<<"&"<<iter.value().data()<<endl; cout<<(result.value(iter.value())).toString().toUtf8().data()<<endl; } } else Q_ASSERT("An error occurred during parsing");

>對於list的資料: 

1 2 3 4 5 6 7 8 9 10 11 12 13

相關推薦

Qt讀取JSONXML資料

QJSON JSON(JavaScript Object Notation)是一個輕量級的資料交換格式; 可以將資料以name/value的形式任意組合; QJson 是一個基於Qt的庫, 將JSON的資料map成name-QVariant的形式, 或者進

Ajax傳輸Jsonxml資料

ajax傳輸xml資料:只要把資料封裝成xml格式就可以實現傳輸,前臺js用responseXML接收xml引數,後臺讀取用流和dom4j來解析 前臺頁面 <%@ page language="java" import="java.util.*"

php寫介面例子返回jsonxml資料

<?php // echo md5("news1"); /* 查詢 介面地址:http://apis.juhe.cn/mobile/get 支援格式:json/xml 請求方

php中json資料xml資料的封裝

<?php /* * 作用:將p轉換為josn格式的資料 * 備註:json_encode只接受UTF-8的編碼資料 */ //echo json_encode($arr); /* * 作用:將p3資料從p1編碼轉換為p2編碼 * p1: 原編碼 * p

jsonxml封裝數據、數據緩存到文件中

用戶 lena 數據緩存 完全 數據類型 lin print 函數 response 一、APP的通信格式之xml xml:擴展標記語言,可以用來標記數據,定義數據類型,是一種允許用戶對自己標記語言進行定義的源語言。XML格式統一,擴平臺語言,非常適合數據傳輸和通信,業界

快來看看Google出品的Protocol Buffer,別僅僅會用JsonXML

println 輸出流 基本數據類型 下一個 ebr sid 官網 序列 reg 前言 習慣用 Json、XML 數據存儲格式的你們,相信大多都沒聽過Protocol Buffer Protocol Buffer 事實上 是 Google出品的一種輕

ajax ---- json xml 區別

需要 pro ces 文件格式 很多 pos 使用 基本 perl 2.XML和JSON優缺點 (1).XML的優缺點<1>.XML的優點  A.格式統一,符合標準;  B.容易與其他系統進行遠程交互,數據共享比較方便。<2>.XML的缺點  A.X

webApi-配置jsonxml格式及時間格式

在config檔案中修改如下程式碼: //新增全域性異常過濾器 config.Filters.Add(new ErrorFilterAttribute()); //設定xml格式器---用於遮蔽字典型別xml序列化錯誤

jsonpickle資料序列化反序列化

序列化 info = {    'name':'alex',    'age':22}f = open("test.txt",'w')f.write(str(info)) #把一個字典轉換成字串 從記憶體存到硬碟的過程叫序列

Notepad++ 安裝jsonxml外掛

json和xml外掛下載: xml tools:https://sourceforge.net/projects/npp-plugins/files/XML%20Tools/ json 32位: https://sourceforge.net/projects/nppjsonv

C#中欄位不被序列化成JSONXML

將一個類序列化成JSON或XML時,如果某個欄位或屬性不想被序列化,則可以使用以下Attribute: 1、[Newtonsoft.Json.JsonIgnore]特性:使用Newtonsoft.Json序列化時欄位不會被序列化。 2、[System.Web.Script

QT讀取本地txt影象資料並在介面上顯示該影象

int pixel[180*1500]; int i=0; char filenametxt[150] = "inputimg.txt"; ifstream infile(filenametxt,ios::in); //測試檔案是否成功開啟 if(

java 讀取本地hdfs資料

package my.test; import java.io.IOException; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FSDataInputStream; import org.apache

JSON XML優缺點的比較

JSON(Javascript Object Notation) 是一種輕量級的資料交換格式。易於人閱讀和編寫。同時也易於機器解析和生成。它基於JavascriptProgramming Language, Standard ECMA-262 3rd Edition - December 1999的一個子集。

關於JSONXML格式之間的轉換

1.JSON轉XML /** * json字串轉換成xml格式字串 * * @return */ public static String json2Xml() { String json = "{\"business\":{\"body\":{\"fpdm\":\"發

【CSDN常見問題解答】JSONXML格式互相轉換

JSON格式和XML格式都是比較常見的資料儲存格式。但是有時候我們會從介面從伺服器或者其他途徑呼叫返回的結果並不是我們想要的。常見的就是我需要XML格式的,結果伺服器返回給我的是JSON格式。今天的常見問題就是,Java中JSON和XML如何互相轉換。首先還是老規矩,上測試程

快來看看Google出品的Protocol Buffer,別隻會用JsonXML

前言 習慣用 Json、XML 資料儲存格式的你們,相信大多都沒聽過Protocol BufferProtocol Buffer 其實 是 Google出品的一種輕量 & 高效的結構化資料儲存格式,效能比 Json、XML 真的強!太!多! 由於 Google出品

JSONJAVA資料物件轉換

JSON-lib這個Java類包用於把bean,map和XML轉換成JSON並能夠把JSON轉回成bean和DynaBean。下載地址:http://json-lib.sourceforge.net/還要需要的第3方包:org.apache.commons(3.2以上版本)org.apache.oronet.

爬蟲學習4-HTMLXML資料的分析與解析

目前在 Java 中,解析 HTML 工具主要包含以下幾種: 1,jsoup:強大的 HTML 解析工具,支援以 jQuery 中 CSS Selector 的方式提取 HTML 中的元素,學習成本較低。, 2,HtmlCleaner:另外一款開源的 Java 語言的 HTM

js實現jsonxml之互轉

在web工程裡面,可能需要經常使用到xml和web的互轉功能, 在這裡,使用萬惡的百度之後,發現用java實現效率和效果很差,json轉成xml會出現一些類的頭,比如<o>,<array>這類的,找了很多方法都沒有能夠消除 鑑於js對json的良好支