27 Commits

Author SHA1 Message Date
Baptiste Lepilleur
842e9ac54b Major rework of 64 integer support: 64 bits integer are only returned when explicitly request via Json::Value::asInt64(), unlike previous implementation where Json::Value::asInt() returned a 64 bits integer.
This eases porting portable code and does not break compatibility with the previous release.

Json::Value::asLargestInt() has also be added to ease writing portable code independent of 64 bits integer support. It is typically used to implement writers.
2010-12-27 17:45:23 +00:00
Baptiste Lepilleur
b96aed0f3e Added float Json::Value::asFloat() to obtain a floating point value as a float (avoid lost of precision warning caused by used of asDouble() to initialize a float). 2010-12-24 19:30:06 +00:00
Baptiste Lepilleur
fa130ef871 - Array index can be passed as int to operator[], allowing use of literal:
Json::Value array;
  array.append( 1234 );
  int value = array[0].asInt();  // did not compile previously
2010-12-24 12:47:14 +00:00
Baptiste Lepilleur
7469f1d014 JsonCpp is now licensed under MIT license, or public domain if desired and recognized in your jurisdiction. 2010-04-20 21:35:19 +00:00
Baptiste Lepilleur
201fb2cf0d - Moved definition of Json::Int and Json::UInt to config.h which compiler detection logic to define them to 64 bits integer if JSON_NO_INT64 is not defined.
- Added Json::ArrayIndex as an unsigned int to forwards.h
- Modified Json::Value to consistently use Json::ArrayIndex.
- Added int/unsigned int constructor overload to Json::Value to avoid ambiguous constructor call.
- Modified jsontestrunner/main.cpp to use Json::valueToString for Value::asInt() conversion to string.
- Modified Json::Reader to only overflow to double when the number is too large (previous code relied on the fact that an int fitted in a double without precision loss).
- Generalized uintToString() helpers and buffer size to automatically adapt to the precision of Json::UInt.
- Added specific conversion logic for UInt to double conversion on Microsoft Visual Studio 6 which only support __int64 to double conversion (unsigned __int64 conversion is not supported)
- Added test for 64 bits parsing/writing. Notes: those will fail when compiled with JSON_NO_INT64 (more dev required to adapt).
2010-04-19 07:37:41 +00:00
Baptiste Lepilleur
afd9cef928 Removed experimental ValueAllocator, it caused static initialization/destruction order issues (bug #2934500). The DefaultValueAllocator has been inlined in code. 2010-03-13 13:10:27 +00:00
Baptiste Lepilleur
0c5fff142d Removed experimental notification on iterators, and added experimental status for allocator (to be removed) 2010-03-11 20:23:07 +00:00
Baptiste Lepilleur
3a1b93be1c - added Int/UInt typedef in Json namespace. Modified Value::Int and Value::UInt to be typedef on those. Modified code to use Json::Int instead of Value::Int.
- added Value constructor taking begin/end pointer to initialize the Value with a non-zero terminated string.
2010-02-21 14:08:17 +00:00
Baptiste Lepilleur
4a5e58c4f4 Integrated part of Patch #2839016, fixing default iterator initialization when using internal map. 2010-01-15 14:56:59 +00:00
Baptiste Lepilleur
a1d6c9e66a Fixed iteration bug over null values. 2009-11-23 22:33:30 +00:00
Baptiste Lepilleur
45c499d310 - added mini unit testing framework
- added unit tests for Value.isXYZ() and iteration over Value members to compute size
2009-11-21 18:07:09 +00:00
Baptiste Lepilleur
8868147835 - added Features class that describes allowed extension for Reader, to allow for strict configuration
- added tests from json.org jsonchecker and modified jsontestrunner to use strict parsing mode when executing them
2009-11-18 21:38:54 +00:00
Malay Shah
ee4b4dab54 Implementing support for reading and writing Unicode escape sequences. 2009-11-13 04:21:14 +00:00
Christopher Dunn
f4b73938d2 I always have compiler problems when using operator[](unsigned) when I pass int instead, so I added a note to the comments. 2007-06-13 17:02:59 +00:00
Christopher Dunn
605cd7e902 Added StyledStreamWriter, which has no reason to derive from Writer, since its write() method does cannot return a string and must take a stream. 2007-06-13 15:55:50 +00:00
Christopher Dunn
6d135cb5e3 Added prop svn:eol-style native. Stripped carriage-returns on unix. Hopefully, this will work for Windows too now. 2007-06-13 15:51:04 +00:00
Christopher Dunn
a44cffb342 Fixed compilation warnings. Added -Wall to linux-gcc compilation. JSON_ASSERT_MESSAGE now throws exception (but JSON_ASSERT does not). 2007-05-09 19:35:15 +00:00
Christopher Dunn
842d64e8d7 Added virtual destructor to StyledWriter to avoid -Wall warning from g++ 2007-04-19 22:20:46 +00:00
Christopher Dunn
f153eaaed0 Fixed 2.95.3 header probs 2007-03-23 10:19:49 +00:00
Christopher Dunn
56a1d6cbf5 Added istream/ostream funcs/operators 2007-03-23 09:57:01 +00:00
Christopher Dunn
208a781e47 Added empty() operator-bang and isNull() 2007-03-23 08:55:25 +00:00
Christopher Dunn
1aa20f9e58 Added removeMember() and altered a few comments. 2007-03-23 08:30:20 +00:00
Christopher Dunn
02ff716d2f Added/clarified comments. Move extra verbiage out of brief sections. 2007-03-23 07:28:19 +00:00
Christopher Dunn
ca21256395 setComment() will assert if comment does not start with / (or if it were NULL, which would have seg-faulted before). 2007-03-23 07:05:19 +00:00
Christopher Dunn
8386d3efe1 Added comments, pre- and post-condition for resize(), clear(), Value(ValueType). 2007-03-23 06:38:29 +00:00
Baptiste Lepilleur
2d4dd281f1 - Made FastWriter output more compact.
- fixed bug in runjsontests.py script.
2007-03-17 22:14:59 +00:00
Baptiste Lepilleur
4cd8bae331 - reorganized repository to match standard layout 2007-03-15 22:11:38 +00:00