• 大小: 745KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-14
  • 语言: 其他
  • 标签: QJson库  

资源简介

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\qobjecthelper.h

     文件       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-base

     文件        178  2013-05-23 11:07  qjson库\src源文件-需要编译\.svn\pristine\0a\0a781ca8d6e963590f208608e3d80f52307a116d.svn-base

     文件       5399  2013-05-23 11:07  qjson库\src源文件-需要编译\.svn\pristine\0b\0b689ac5a25e191620bdfed4d3c3b2679cdee9a9.svn-base

     文件        970  2013-05-23 11:07  qjson库\src源文件-需要编译\.svn\pristine\0b\0bde529adb7ba2848d2b105bd1e003d8b01f4fa1.svn-base

     文件        343  2013-05-23 11:07  qjson库\src源文件-需要编译\.svn\pristine\0c\0c1d33317a2c50b88cfbd910539a9cd5aa8631d2.svn-base

     文件      14310  2013-05-23 11:06  qjson库\src源文件-需要编译\.svn\pristine\0c\0c9cefecb336292c082f40b361701fac4d454a54.svn-base

     文件        151  2013-05-23 11:07  qjson库\src源文件-需要编译\.svn\pristine\0d\0db777e1e3beee19fb951c5b6547471383bd4010.svn-base

     文件       3894  2013-05-23 11:06  qjson库\src源文件-需要编译\.svn\pristine\0d\0dfdfce44c45e705dfba3aad01cf481731f61515.svn-base

     文件       3751  2013-05-23 11:06  qjson库\src源文件-需要编译\.svn\pristine\0e\0e595965b4348a44b880607290e7546debb7c757.svn-base

     文件       9357  2013-05-23 11:06  qjson库\src源文件-需要编译\.svn\pristine\0f\0f0dfa1d605f473f2d33bdc1d389d41ee8aca8ac.svn-base

     文件       3988  2013-05-23 11:07  qjson库\src源文件-需要编译\.svn\pristine\0f\0f65f97522e208426a577c6c5451fe4e6573426f.svn-base

     文件        612  2013-05-23 11:07  qjson库\src源文件-需要编译\.svn\pristine\10\105a21a982508d3734b30b34bc86b48f7d0cd448.svn-base

     文件        124  2013-05-23 11:06  qjson库\src源文件-需要编译\.svn\pristine\13\139a1ffb406931b88b07f7ff3f15537c7ff612a5.svn-base

............此处省略485个文件信息

评论

共有 条评论

相关资源