A fork of http://sourceforge.net/projects/libjson/ aiming to clean up the library and bring C++11 features to it. The C compatibility is not maintained.
- Eliminate namespace and preprocessor pollution.
- Add modern C++ features (move constructors, initialization_vector support, std::function, etc)
- Make source code more readable.
- Add more error checks.
- Provide amalgamation header and source files for easy importing to existing projects.
- Remove all code for C library.
- Remove all ISO strict code.
- Clean and document files:
- libjson.h
- JSONOptions.h
- JSONNode.h/.cpp
- internalJSONNode.h/.cpp
- JSONAllocator.h/.cpp
- JSONChildren.h/.cpp
- JSONDebug.h/.cpp
- JSONDefs
- JSONDefs.h
- JSONGlobals.h
- JSONIterators.cpp
- JSONMemory.h/.cpp
- JSONMemoryPool.h
- JSONNode_Mutex.cpp
- JSONPreparse.h/.cpp
- JSONSharedString.h
- JSONSingleton.h
- JSONStats.h
- JSONStream.h/.cpp
- JSONValidator.h/.cpp
- JSONWorker.h/.cpp
- JSONWriter.cpp
- JSON_Base64.h
- NumberToString.h
- (dependency) libbase64++.h
- (dependency) mempool.h
- Convert build to gyp
- Convert tests to Google Test
- Move everything inside the namespace "json"
- Remove
json_nothrow
. - Add error classes.
- json::parse_error
- json::conversion_error (std::logic_error)
- json::out_of_bounds_error (std::out_of_range)
- Update classes with error checks:
- JSONNode
- internalJSONNode
- JSONAllocator
- JSONChildren
- JSONDebug
- JSONIterators
- JSONMemory
- JSONMemoryPool
- JSONNode_Mutex
- JSONPreparse
- JSONSharedString
- JSONSingleton
- JSONStats.h
- JSONStream
- JSONValidator
- JSONWorker
- JSONWriter
- JSON_Base64
- NumberToString
- Add move constructors to classes:
- JSONNode
- internalJSONNode
- JSONAllocator
- JSONChildren
- JSONDebug
- JSONIterators
- JSONMemory
- JSONMemoryPool
- JSONNode_Mutex
- JSONPreparse
- JSONSharedString
- JSONSingleton
- JSONStats.h
- JSONStream
- JSONValidator
- JSONWorker
- JSONWriter
- JSON_Base64
- NumberToString
- Add initialization_vector support to classes:
- JSONNode
- Update callbacks to use
std::function
- Debug callbacks
- Stream callbacks
- Mutex callbacks
- Memory callbacks
- Make mutexes compatible with
std::mutex
- Update license.
- Convert tabs to spaces.
- Sort included files alphabetically.
- Align all code at 4-space tabs.
- Replace
#define
include guards with#pragma once
- Reformat preprocessor statements.
- Wrap all lines at 100 characters.
- Add doxygen-style documentation to all classes, functions, and member variables.
- Remove deprecated functionality.
- Move
inline
member function definitions into class declaration.