资源简介
QJson库包括源码文件和dll以及libqjson.a文件。
src源码文件需要自己经过编译,参考:http://blog.csdn.net/wangtaohappy/article/details/8964603
可以直接用的有dll和libqjson.a文件和QJson下的头文件。
使用参考:http://blog.csdn.net/wangtaohappy/article/details/8964603
代码片段和文件信息
#include “qjson_debug.h“
#include “json_scanner.h“
#include “json_parser.hh“
#include
#include
#include
#include
bool ishexnstring(const QString& string) {
for (int i = 0; i < string.length(); i++) {
if (isxdigit(string[i] == 0))
return false;
}
return true;
}
JSonScanner::JSonScanner(QIODevice* io)
: m_io (io)
{
m_quotmarkClosed = true;
m_quotmarkCount = 0;
}
static QString unescape( const QByteArray& ba bool* ok ) {
assert( ok );
*ok = false;
QString res;
QByteArray seg;
bool bs = false;
for ( int i = 0 size = ba.size(); i < size; ++i ) {
const char ch = ba[i];
if ( !bs ) {
if ( ch == ‘\\‘ )
bs = true;
else
seg += ch;
} else {
bs = false;
switch ( ch ) {
case ‘b‘:
seg += ‘\b‘;
break;
case ‘f‘:
seg += ‘\f‘;
break;
case ‘n‘:
seg += ‘\n‘;
break;
case ‘r‘:
seg += ‘\r‘;
break;
case ‘t‘:
seg += ‘\t‘;
break;
case ‘u‘:
{
res += QString::fromUtf8( seg );
seg.clear();
if ( i > size - 5 ) {
//error
return QString();
}
const QString hex_digit1 = QString::fromUtf8( ba.mid( i + 1 2 ) );
const QString hex_digit2 = QString::fromUtf8( ba.mid( i + 3 2 ) );
i += 4;
if ( !ishexnstring( hex_digit1 ) || !ishexnstring( hex_digit2 ) ) {
qCritical() << “Not an hex string:“ << hex_digit1 << hex_digit2;
return QString();
}
bool hexOk;
const ushort hex_code1 = hex_digit1.toShort( &hexOk 16 );
if (!hexOk) {
qCritical() << “error converting hex value to short:“ << hex_digit1;
return QString();
}
const ushort hex_code2 = hex_digit2.toShort( &hexOk 16 );
if (!hexOk) {
qCritical() << “error converting hex value to short:“ << hex_digit2;
return QString();
}
res += QChar(hex_code2 hex_code1);
break;
}
case ‘\\‘:
seg += ‘\\‘;
break;
default:
seg += ch;
break;
}
}
}
res += QString::fromUtf8( seg );
*ok = true;
return res;
}
int JSonScanner::yylex(YYSTYPE* yylval yy::location *yylloc)
{
char ch;
if (!m_io->isOpen()) {
qCritical() << “JSonScanner::yylex - io device is not open“;
return -1;
}
yylloc->step();
do {
bool ret;
if (m_io->atEnd()) {
qjsonDebug() << “JSonScanner::yylex - yy::json_parser::token::END“;
return yy::json_parser::token::END;
}
else
ret = m_io->getChar(&ch);
if (!ret) {
qCritical() << “JSonScanner::yylex - error reading from io device“;
return -1;
}
qjsonDebug() << “JSonScanner::yylex - got |“ << ch << “|“;
yylloc
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 154894 2013-05-23 11:11 qjson库\QJson直接用-包括dll和lib.a\libQJson.a
文件 9357 2013-05-23 11:07 qjson库\QJson直接用-包括dll和lib.a\QJson\json_parser.hh
文件 562 2013-05-23 11:07 qjson库\QJson直接用-包括dll和lib.a\QJson\json_scanner.h
文件 3894 2013-05-23 11:07 qjson库\QJson直接用-包括dll和lib.a\QJson\location.hh
文件 1222 2013-05-23 11:07 qjson库\QJson直接用-包括dll和lib.a\QJson\parserrunnable.h
文件 3720 2013-05-23 11:07 qjson库\QJson直接用-包括dll和lib.a\QJson\position.hh
文件 2038 2013-05-23 11:07 qjson库\QJson直接用-包括dll和lib.a\QJson\qjson.h
文件 263 2013-05-23 11:07 qjson库\QJson直接用-包括dll和lib.a\QJson\qjson_debug.h
文件 1201 2013-05-23 11:07 qjson库\QJson直接用-包括dll和lib.a\QJson\qjson_export.h
文件 466 2013-05-23 11:07 qjson库\QJson直接用-包括dll和lib.a\QJson\qjson_p.h
文件 4161 2013-05-23 11:07 qjson库\QJson直接用-包括dll和lib.a\QJson\qob
文件 1511 2013-05-23 11:07 qjson库\QJson直接用-包括dll和lib.a\QJson\serializer.h
文件 1531 2013-05-23 11:07 qjson库\QJson直接用-包括dll和lib.a\QJson\serializerrunnable.h
文件 3004 2013-05-23 11:07 qjson库\QJson直接用-包括dll和lib.a\QJson\stack.hh
文件 606720 2013-05-23 11:11 qjson库\QJson直接用-包括dll和lib.a\QJson.dll
文件 3 2013-05-23 11:06 qjson库\src源文件-需要编译\.svn\entries
文件 3 2013-05-23 11:06 qjson库\src源文件-需要编译\.svn\format
文件 970 2013-05-23 11:07 qjson库\src源文件-需要编译\.svn\pristine\00\00d7762db8c54e58bbcc82f56f36b75abf9fb981.svn-ba
文件 178 2013-05-23 11:07 qjson库\src源文件-需要编译\.svn\pristine\0a\0a781ca8d6e963590f208608e3d80f52307a116d.svn-ba
文件 5399 2013-05-23 11:07 qjson库\src源文件-需要编译\.svn\pristine\0b\0b689ac5a25e191620bdfed4d3c3b2679cdee9a9.svn-ba
文件 970 2013-05-23 11:07 qjson库\src源文件-需要编译\.svn\pristine\0b\0bde529adb7ba2848d2b105bd1e003d8b01f4fa1.svn-ba
文件 343 2013-05-23 11:07 qjson库\src源文件-需要编译\.svn\pristine\0c\0c1d33317a2c50b88cfbd910539a9cd5aa8631d2.svn-ba
文件 14310 2013-05-23 11:06 qjson库\src源文件-需要编译\.svn\pristine\0c\0c9cefecb336292c082f40b361701fac4d454a54.svn-ba
文件 151 2013-05-23 11:07 qjson库\src源文件-需要编译\.svn\pristine\0d\0db777e1e3beee19fb951c5b6547471383bd4010.svn-ba
文件 3894 2013-05-23 11:06 qjson库\src源文件-需要编译\.svn\pristine\0d\0dfdfce44c45e705dfba3aad01cf481731f61515.svn-ba
文件 3751 2013-05-23 11:06 qjson库\src源文件-需要编译\.svn\pristine\0e\0e595965b4348a44b880607290e7546debb7c757.svn-ba
文件 9357 2013-05-23 11:06 qjson库\src源文件-需要编译\.svn\pristine\0f\0f0dfa1d605f473f2d33bdc1d389d41ee8aca8ac.svn-ba
文件 3988 2013-05-23 11:07 qjson库\src源文件-需要编译\.svn\pristine\0f\0f65f97522e208426a577c6c5451fe4e6573426f.svn-ba
文件 612 2013-05-23 11:07 qjson库\src源文件-需要编译\.svn\pristine\10\105a21a982508d3734b30b34bc86b48f7d0cd448.svn-ba
文件 124 2013-05-23 11:06 qjson库\src源文件-需要编译\.svn\pristine\13\139a1ffb406931b88b07f7ff3f15537c7ff612a5.svn-ba
............此处省略485个文件信息
- 上一篇:qt 动态创建控件
- 下一篇:支持多个DBGridEH导出Excel
评论
共有 条评论