diff --git a/ejson/Array.cpp b/ejson/Array.cpp index 23a19a3..3e97441 100644 --- a/ejson/Array.cpp +++ b/ejson/Array.cpp @@ -67,7 +67,8 @@ bool ejson::Array::iParse(const std::string& _data, size_t& _pos, ejson::filePos } tmpElement->iParse(_data, iii, _filePos, _doc); m_value.push_back(tmpElement); - } else if (_data[iii] == '"') { + } else if ( _data[iii] == '"' + || _data[iii] == '\'') { // find a string: JSON_PARSE_ELEMENT("find String quoted"); ejson::String * tmpElement = new ejson::String(); diff --git a/ejson/Array.h b/ejson/Array.h old mode 100755 new mode 100644 diff --git a/ejson/Boolean.h b/ejson/Boolean.h old mode 100755 new mode 100644 diff --git a/ejson/Null.h b/ejson/Null.h old mode 100755 new mode 100644 diff --git a/ejson/Number.h b/ejson/Number.h old mode 100755 new mode 100644 diff --git a/ejson/Object.cpp b/ejson/Object.cpp index f925033..0c4c3f7 100644 --- a/ejson/Object.cpp +++ b/ejson/Object.cpp @@ -73,14 +73,16 @@ bool ejson::Object::iParse(const std::string& _data, size_t& _pos, ejson::filePo } else { if (mode == parseName) { JSON_PARSE_ELEMENT("name START " << '"'); - if (_data[iii] == '"') { + if ( _data[iii] == '"' + || _data[iii] == '\'') { + char startValue=_data[iii]; currentName = ""; for (iii++; iii<_data.size(); iii++) { _filePos.check(_data[iii]); #ifdef ENABLE_DISPLAY_PARSED_ELEMENT - drawElementParsed(_data[iii], _filePos); + drawElementParsed(_data[iii], _filePos); #endif - if (_data[iii] == '\"') { + if (_data[iii] == startValue) { mode = parseMiddle; break; } else { @@ -92,7 +94,7 @@ bool ejson::Object::iParse(const std::string& _data, size_t& _pos, ejson::filePo for (iii++; iii<_data.size(); iii++) { _filePos.check(_data[iii]); #ifdef ENABLE_DISPLAY_PARSED_ELEMENT - drawElementParsed(_data[iii], _filePos); + drawElementParsed(_data[iii], _filePos); #endif if (false == checkString(_data[iii])) { mode = parseMiddle; @@ -129,7 +131,8 @@ bool ejson::Object::iParse(const std::string& _data, size_t& _pos, ejson::filePo tmpElement->iParse(_data, iii, _filePos, _doc); add(currentName, tmpElement); currentName = ""; - } else if (_data[iii] == '"') { + } else if ( _data[iii] == '"' + || _data[iii] == '\'') { // find a string: JSON_PARSE_ELEMENT("find String quoted"); ejson::String * tmpElement = new ejson::String(); diff --git a/ejson/Object.h b/ejson/Object.h old mode 100755 new mode 100644 diff --git a/ejson/String.cpp b/ejson/String.cpp index b29f966..8afb108 100644 --- a/ejson/String.cpp +++ b/ejson/String.cpp @@ -20,6 +20,7 @@ bool ejson::String::iParse(const std::string& _data, size_t& _pos, ejson::filePos& _filePos, ejson::Document& _doc) { JSON_PARSE_ELEMENT("start parse : 'String' "); + char end = _data[_pos]; for (size_t iii=_pos+1; iii<_data.size(); iii++) { _filePos.check(_data[iii]); #ifdef ENABLE_DISPLAY_PARSED_ELEMENT @@ -27,7 +28,7 @@ bool ejson::String::iParse(const std::string& _data, size_t& _pos, ejson::filePo #endif ejson::filePos tmpPos; // TODO : manage \x - if( _data[iii]!= '\"') { + if(_data[iii] != end) { m_value += _data[iii]; } else { _pos = iii; diff --git a/ejson/String.h b/ejson/String.h old mode 100755 new mode 100644 diff --git a/ejson/Value.h b/ejson/Value.h old mode 100755 new mode 100644 diff --git a/ejson/ejson.h b/ejson/ejson.h old mode 100755 new mode 100644