Commit graph

361 commits

Author SHA1 Message Date
Niels 1adb9d62dd fixed #156 2015-12-17 16:52:38 +01:00
Niels ac4d4a0f66 fixed compilation error and fixed shadow warnings 2015-12-17 16:22:15 +01:00
Niels 07033f67a5 some cleanup and more documentation 2015-12-17 15:49:33 +01:00
Niels a615598b14 cleanup documentation; started added versions 2015-12-15 19:42:32 +01:00
Niels 1df5d726d9 undid the fix for #136 2015-12-15 18:34:07 +01:00
Niels cd04a7d3e9 fix for #133
added value() function to get object value at given key or a default
value if key does not exist
2015-12-15 08:38:54 +01:00
Niels 2ba901bbf6 cleanup 2015-12-14 21:23:21 +01:00
Niels 5bc1b65676 clean up (for #154) 2015-12-14 16:58:49 +01:00
Niels 258f04c561 fixed #154 (no more warnings for incomplete switches) 2015-12-14 16:32:37 +01:00
Niels a70a7a8001 fixed #135: operator[] now only works on nonconst JSON objects 2015-12-13 11:26:55 +01:00
Niels 9da8770f3a ignore UTF-8 byte order mark (fixes #152) 2015-12-07 22:27:53 +01:00
Niels 22bc022745 added change from #140 2015-12-07 21:05:21 +01:00
Niels 72476b4226 cleanup after #153 2015-12-07 20:38:16 +01:00
Niels f36f316fc7 Merge pull request #153 from whackashoe/remove_sprintf
Replace sprintf with hex function, this fixes #149
2015-12-07 20:35:43 +01:00
Niels 6f8e36ac3d fixes #136 2015-12-06 17:33:52 +01:00
Jett 14d8a91f73 Replace sprintf with hex function, this fixes #149 2015-11-19 00:30:00 -06:00
Robert Marki ec7a1d8347 Fix character skipping after a surrogate pair
In a string the first character following a surrogate pair is skipped by the
lexer, but the rest of the string is parsed as usual.
2015-11-13 13:13:46 +01:00
Niels 3948630374 Merge pull request #130 from dariomt/patch-1
removed stream operator for iterator, resolution for #125
2015-10-23 18:42:10 +02:00
Niels 8f379ef3eb Merge pull request #137 from dariomt/patch-3
Detect correctly pointer-to-const
2015-10-20 22:31:15 +02:00
Niels 746c1a7142 cleanup 2015-10-17 12:51:59 +02:00
dariomt 5198e1f2e4 removed const in get_ptr() by accident 2015-10-16 15:45:47 +02:00
dariomt bd2783f45c Added get_ref()
Same as get_ptr() but for references.
If the type is incompatible it throws (get_ptr() returns null).
Implemented in terms of get_ptr().
2015-10-16 15:23:57 +02:00
Dario Menendez 8f97e99feb Merge remote-tracking branch 'origin/patch-3' 2015-10-16 11:23:19 +02:00
dariomt b342e1207c Detect correctly pointer-to-const
The intention of the current code is to detect a pointer-to-const but instead it is detecting a const-pointer. See #134
2015-10-16 11:11:16 +02:00
dariomt 55cbd903e8 removed stream operator for iterator, resolution for #125
It doesn't really make sense to stream an iterator.
Besides, this was causing trouble in MSVC in Debug mode (see #125)
2015-10-07 17:50:53 +02:00
Niels 57de1d602e Cleanup 2015-10-03 13:16:59 +02:00
Niels b58a93b8dd merged #111 2015-08-14 14:45:13 +02:00
Niels 6f2da1a39a try to avoid MSVC bug (https://connect.microsoft.com/VisualStudio/feedback/details/797682/c-decltype-of-class-member-access-incompletely-implemented) 2015-08-13 10:24:28 +02:00
Niels fadccc34eb fixed iterator_wrapper 2015-08-13 10:08:55 +02:00
Niels 2707733920 fixed off-by-one error 2015-08-06 22:53:16 +02:00
Niels 11ae6da6d9 reverted “fix” for issue #107 2015-08-06 22:35:56 +02:00
Niels 2c3259320d addressed locale-issues #107 2015-08-04 18:12:11 +02:00
Niels e64dc532ab fixed build 2015-08-02 21:35:07 +02:00
Niels c974e32677 fixed the build 2015-07-30 23:02:55 +02:00
Niels 8eb32084b4 code for #83 (no tests yet) 2015-07-30 21:32:18 +02:00
Niels a26e44d66e prepare 1.0.0-rc1 2015-07-26 20:44:55 +02:00
Niels 359cf7993f closed #75
minor changes, but the core idea remains the same
2015-07-26 18:41:58 +02:00
Niels 300fba6388 fixed Windows build 2015-07-19 13:33:03 +02:00
Niels 623c03bc49 some cleanup 2015-07-19 12:41:46 +02:00
Niels 5084159048 added changes from #105: MSVC fixes
- additionally, switch off optimization flags to maybe allow build to
complete on AppVeyor
2015-07-16 18:45:19 +02:00
Niels 5c813b614f closes #104 and integrates code from #93
Iterators are now implemented via const_iterators and reverse_iterator
and const_reverse_iterator now share a template class. Thanks a lot!
2015-07-14 21:21:08 +02:00
Niels 1c8d5dc211 added another insert function 2015-07-12 22:47:08 +02:00
Niels 186aefb8f2 added first insert functions 2015-07-12 18:28:23 +02:00
Niels b2efd50a03 more documentation 2015-07-12 17:08:51 +02:00
Niels 5e1d0f1592 more documentation and some cleanup 2015-07-12 14:49:37 +02:00
Niels c012b29ae5 worked on #102: more documentation and examples 2015-07-08 16:55:29 +02:00
Niels 19d550c044 new implementation for (const_)reverse_iterator to cope with issue #93 2015-07-07 23:31:43 +02:00
Niels 12d174d424 fixed #100 2015-07-06 23:21:54 +02:00
Niels e070aed8a7 cleanup 2015-07-06 21:12:50 +02:00
Niels 2bc5d893c8 refactored generic iterator into a new class primitive_iterator_t 2015-07-05 22:22:15 +02:00
Niels 82a6995306 fixed #101 2015-07-01 23:08:54 +02:00
Niels 540c58964d closed #91 2015-06-29 20:53:01 +02:00
Niels 48c4f4d05d more documentation 2015-06-28 19:32:09 +02:00
Niels 7d9cfb1b32 added documentation for erase functions 2015-06-28 15:49:40 +02:00
Niels 862e7000f4 fixed #94 2015-06-28 14:39:52 +02:00
Niels 3f6b10733b addressed static analysis warnings #94 2015-06-28 14:02:47 +02:00
Niels c58c5aa8c9 fixed #97
- added functions is_structured() and is_primitive()
- updated documentation
- updated test cases
2015-06-27 18:43:11 +02:00
Niels 3ffedea5c4 minor changes 2015-06-25 00:40:16 +02:00
Niels 40312fb07b worked on #91
- implemented `get_ptr` function to return pointer to value member
- overworked `get` function to support pointer types
- added test cases
- added documentation (see
http://nlohmann.github.io/json/classnlohmann_1_1basic__json.html) with
examples
2015-06-24 15:16:32 +02:00
Niels 457572184c more documentation
In this commit, also the semantics for values skipped via the parser
callback has changed. Now, the top-level value is returned as “null”
instead of “discarded”.
2015-06-24 12:15:51 +02:00
Niels 48545f5b18 more documentation 2015-06-22 23:21:49 +02:00
Niels 844bfd39b5 more documentation 2015-06-22 21:44:20 +02:00
Niels 891b8f33c1 more documentation 2015-06-21 22:56:03 +02:00
Niels c85dbef98f more documentation 2015-06-21 22:42:32 +02:00
Niels 4bb5126502 more documentation 2015-06-21 18:30:08 +02:00
Niels 099030baeb added alias __basic_json 2015-06-21 13:04:03 +02:00
Niels 3e28c5ff8f commit to trigger build 2015-06-21 11:35:54 +02:00
Niels d818bec6ac more documentation 2015-06-21 11:29:32 +02:00
Niels c40e85920f more documentation 2015-06-21 09:44:12 +02:00
Niels bb13c931b3 more documentation 2015-06-21 02:14:01 +02:00
Niels e63c508172 overworked doxygen 2015-06-21 00:59:33 +02:00
Niels 4019380a8a forgot a header for MSVC 2015-06-20 17:45:52 +02:00
Niels 4fb825dbce fixed compiler warnings 2015-06-20 15:47:37 +02:00
Niels 719cc9e4d7 removed dependent to RTTI 2015-06-20 14:57:08 +02:00
Niels 18cd30d38d minor iterator refactoring (from #88) 2015-06-20 14:29:34 +02:00
Niels 23c904aca8 added fix for ssize_t for MSVC 2015-06-20 14:25:49 +02:00
Niels dd3ffc1064 fixed issue #93 2015-06-19 08:11:48 +02:00
Niels 51edad3962 fixed #89 without breaking #71 2015-06-15 19:45:25 +02:00
Niels 8e9a711996 closes #90 2015-06-15 16:37:49 +02:00
Niels 2e9a13bd88 added extensive Unicode tests 2015-06-14 23:17:49 +02:00
Niels 6fb829062c some maintenance
- unified used exception types
- removed any camel case names
2015-06-14 19:35:20 +02:00
Niels bd0cb65b7a fixed more float parsing cases 2015-06-13 12:42:18 +02:00
Niels 7c579f11e5 some cleanup after #87 2015-06-13 10:29:43 +02:00
Niels 7f25511242 change from #86 2015-06-11 18:10:12 +02:00
Niels 2d26d85c2b some cleanup 2015-06-08 16:35:38 +02:00
Niels adc065d328 included fixes for MSVC (see #62)
94de11e, f673c8d, 540b763
2015-06-04 21:02:16 +02:00
Niels b8d05f72ea fixed float serialization (#81 and #80) 2015-06-04 19:43:29 +02:00
Niels 266399d8e5 fixed MinGW compilation (#81 and #80) 2015-06-04 08:31:13 +02:00
Niels 9dbb4402fb improved performance for dump() 2015-06-03 23:34:10 +02:00
Niels f5470d47ff made array static constexpr (#79) 2015-06-02 21:27:49 +02:00
Niels afc7f2388e fixed typo (#74) 2015-06-02 21:24:03 +02:00
Niels 61f0376366 more cleanup 2015-05-10 17:30:41 +02:00
Niels cb2102a2d2 some pretty-printing 2015-05-10 17:12:36 +02:00
Niels 43ededf41f more cleanup 2015-05-10 17:03:50 +02:00
Niels 76d3433e6c moved some code to json_value union 2015-05-10 16:30:33 +02:00
Niels 5ed80d308d some parsing performance improvements 2015-05-09 22:49:21 +02:00
Niels 9cdd278f45 overworked code for pull request #71 2015-05-09 15:29:20 +02:00
Niels aca3f65bbe Merge pull request #71 from likebeta/master
support enum
2015-05-09 15:23:51 +02:00
Niels 2b4e461702 fixed string definition 2015-05-09 15:09:52 +02:00
Niels 1f381d496d overworked coverage 2015-05-09 14:54:33 +02:00
Niels 869035a6c9 added compliance test cases 2015-05-09 13:56:51 +02:00
易思龙 91aee10579 support enum
construct enum type to basic_json (proxy by int type)
```
    enum { t = 0 };
    json  j = json::array();
    j.push_back(t);

    j.push_back(json::object({
         {"game_type", t}
    }));
```
2015-05-09 17:44:10 +08:00
Niels a8e92a6bfb fixed #68 2015-05-06 20:18:16 +02:00
Niels 17609f244d fixed #70 2015-05-06 19:52:12 +02:00
Niels 1580eee4ed applied #69 to header 2015-05-04 23:31:34 +02:00
Niels 1ac4d673b6 fixed test case 2015-05-03 18:46:26 +02:00
Niels 952cbbc795 manually merged pull request #41 2015-05-03 17:52:13 +02:00
Niels faae8bb843 some typename fix 2015-04-27 23:09:51 +02:00
Niels 81d3973151 undid changes that broke the build 2015-04-26 21:51:35 +02:00
Niels f874b5f0f8 clean up
- removed m_final member
- parse_internal now takes a reference to a basic_json object to fill
with data
- header is automatically regenerated if re2c file is changed
2015-04-26 21:43:47 +02:00
Niels f09df96742 updated README 2015-04-26 15:16:07 +02:00
Niels 7a32bd22e9 Merge pull request #63 from Florianjw/master
Improve the implementations of the comparission-operators
2015-04-26 15:10:32 +02:00
Niels c7f95cc636 minor change to the parsing of objects/arrays 2015-04-26 15:10:04 +02:00
Florian Weber 4fbff7d140 simplify value_t::operator< by using a lookup-table 2015-04-26 14:55:06 +02:00
Florian Weber f5e95522aa remove braces around single-return-statement switch-cases 2015-04-26 14:44:56 +02:00
Florian Weber d2771eb1bb Fix comparission between integers and floats
Until now it depended on the parameter-order whether
integers and floats were compared as integers or floats.

Appart from being not logical, this might even have meant that
the provided “order” was in fact not that. (not sure here, but I
like to be carefull)
2015-04-26 14:39:39 +02:00
Florian Weber 306695dd25 fix typos and improve operator== 2015-04-26 14:31:31 +02:00
Florian Weber 28f64c22a9 simplify operator< 2015-04-26 14:19:56 +02:00
Niels a372937424 fixed some small issues 2015-04-26 13:37:01 +02:00
Niels e3ab0bc74a addressing issue #62 2015-04-25 23:10:23 +02:00
Niels 89a8491914 minor changes 2015-04-25 01:25:42 +02:00
Niels fc58a73523 fix #60 (double escaping) 2015-04-24 22:06:57 +02:00
Niels 2dd94dd943 some simplifications 2015-04-12 17:26:54 +02:00
Niels f03c6ce458 added missing test cases 2015-04-12 16:57:51 +02:00
Niels dda8a5c473 adjusted code to documentation; some cleanup 2015-04-12 16:19:21 +02:00
Niels 139ef0e750 implemented front() and back() 2015-04-12 14:14:00 +02:00
Niels ade49f8b2a constructor for an integer range 2015-04-12 13:15:26 +02:00
Niels b801adca76 started to implement sequence container 2015-04-12 12:02:30 +02:00
Niels 02f617f083 adjusted code to documentation 2015-04-11 19:26:12 +02:00
Niels 6dceab583c implemented issue #57: erase with iterators 2015-04-11 15:30:19 +02:00
Niels 84195daf28 added erase function for arrays 2015-04-09 18:55:57 +02:00
Niels 1bdb6acb1f overworked type conversion 2015-04-08 22:23:40 +02:00
Niels 0a96116b0c more SFINAE 2015-04-03 16:34:39 +02:00
Niels ea1046110d using "key_type" where possible 2015-04-03 14:43:44 +02:00
Niels b747881466 subtle fix for get() function 2015-04-03 14:20:15 +02:00
Niels 5e89cb0acb implemented key()/value() for reverse iterators 2015-03-26 17:06:33 +01:00
Niels 47ea1c10d4 key/value function for iterators (#46)
Currently only support iterator and const_iterator. reverse_iterator
and const_reverse_iterator to be implemented soon.
2015-03-24 19:08:03 +01:00
Niels 0707030bc5 minor changes to pull request #40 2015-03-24 18:05:58 +01:00
Niels e3188897f8 more on #48: allowing non-std begin/end functions 2015-03-24 17:39:00 +01:00
Niels 6fc52f3302 fixed #47 (added erase function to remove key form object) 2015-03-24 16:50:55 +01:00
Niels 43417c350b fixed #42 (removed equality comparisons for floats) 2015-03-23 23:03:48 +01:00
Niels 53e3da8071 minor adjustments to pull request #38 2015-03-23 20:27:30 +01:00
Niels a382a93a8e Merge pull request #38 from wtsi-hgi/feature/small-float-serialization
Feature/small float serialization
2015-03-23 20:15:50 +01:00
Niels bb2671df11 fixed #43 (adding friendship to allow iterator change) 2015-03-22 19:18:21 +01:00
Niels f2957dc3bf fixed #45 (added count function for keys in objects) 2015-03-22 19:07:43 +01:00
Niels cf829ac2e8 fixed deprecated warnings in issue #42 2015-03-22 17:50:43 +01:00
Niels abc6137001 fixed #48 (using nonmember begin/end) 2015-03-22 17:30:48 +01:00
Joshua C. Randall 7bfcbe2825 Fixes serialization of small floats
Now uses std::snprintf() to generate a "%.15g" formatted string
for JSON values of type number_float. 15 decimals digits are
enough to round-trip an IEEE 754 double from string->double->string
and get an identical result.

std::snprintf is called twice. Once to determine the required
buffer size and then again after allocating a buffer of that
size.

Note that the buffer size *could* be hardcoded for better
performance. "%.15g" should result in strings of maximum length
23, plus one character for the terminating null for a buffer size
of 24.
2015-02-28 17:11:46 +00:00
Niels 63c70fa07e minor changes 2015-02-24 23:19:19 +01:00
Niels d524e23204 overworked iterators 2015-02-22 17:52:27 +01:00
Niels bc2e3a798d a more forgiving array behavior 2015-02-21 13:24:07 +01:00
Niels afd02eee44 fixed [] operator; added README 2015-02-18 22:28:56 +01:00
Niels 9e7941b6ba more type adjustments 2015-02-17 00:22:12 +01:00
Niels 432a54e570 some type fixes 2015-02-16 23:17:28 +01:00
Niels a3f52a5a04 minor change to make code more portable 2015-02-16 22:54:07 +01:00
Niels 5ca84052a7 removed unused code and fixed includes 2015-02-16 22:47:30 +01:00
Niels db91140156 clean up 2015-02-15 23:27:35 +01:00
Niels 429d2099ab more allocators 2015-02-15 23:13:46 +01:00
Niels b387761e12 forgot to destroy object 2015-02-15 22:58:35 +01:00
Niels 568d75954e experiment with user-defined allocator 2015-02-15 22:49:26 +01:00
Niels b1be1b45ee minor change 2015-02-15 18:43:17 +01:00
Niels d31d1ca664 fix of the fix 2015-02-15 17:40:46 +01:00
Niels 9f87fd464a fixed Valgrind error 2015-02-15 17:07:19 +01:00
Niels f1f72403cd some unicode magic 2015-02-15 16:56:54 +01:00
Niels b80ca376f9 added some missing features from 2.0 version 2015-02-15 15:16:11 +01:00
Niels 2d8b362849 further cleanup 2015-02-15 14:52:00 +01:00
Niels 2fc82358ce clean up 2015-02-15 13:35:51 +01:00
Niels bb558d8e6f added Unicode support 2015-02-15 11:44:49 +01:00
Niels 6ef3cb51a4 some reorganization 2015-02-14 17:34:06 +01:00
Niels cc4a8319a1 reverse iterators 2015-02-14 16:47:14 +01:00
Niels 005a5c2858 some fixes and cleanup 2015-02-13 21:46:33 +01:00
Niels 4361c4d03f more test cases 2015-02-12 22:54:42 +01:00
Niels 89a1b0247b fixed a major bug in the parser 2015-02-11 17:24:14 +01:00
Niels 3f8dc632e2 test cases for iterator classes 2015-02-11 15:29:41 +01:00
Niels 53c9564c51 bug fix and test cases 2015-02-11 14:58:52 +01:00
Niels 7b7a54aca5 fixed a bug 2015-02-11 13:15:22 +01:00
Niels f1bd206994 number test cases 2015-02-11 11:36:45 +01:00
Niels 463c38df60 fix test case 2015-02-11 10:57:17 +01:00
Niels c816fd12a0 cleanup 2015-02-11 10:16:43 +01:00
Niels d609790fff added whitespace handling 2015-02-11 09:51:24 +01:00
Niels 5d280143b7 fixes 2015-02-11 09:41:23 +01:00
Niels 8a4e127a57 + moved lexer to class 2015-02-11 09:10:28 +01:00
Niels e845cd1db8 still errors... 2015-02-10 23:55:44 +01:00
Niels 0433e71fc3 rename member variables; add whitespace tests 2015-02-10 23:20:30 +01:00
Niels f9797f8eb2 try 2015-02-10 23:05:45 +01:00
Niels 1aebb6e6ed removing failing (?) test cases 2015-02-10 22:48:16 +01:00
Niels 6232c78f88 possible fix 2015-02-10 22:37:07 +01:00
Niels 1bbde4597b more test cases 2015-02-10 22:09:21 +01:00
Niels cd89a88b4a fix build error 2015-02-10 21:03:32 +01:00
Niels 963ec13b4a testing the parser 2015-02-10 20:52:39 +01:00
Niels 3589837071 more test cases 2015-02-10 20:28:16 +01:00
Niels 8c6bb04d10 added width feature / more test cases 2015-02-10 19:50:26 +01:00
Niels 29a8d43d5a fixed tests for copy assignment 2015-02-10 17:40:47 +01:00
Niels 2ec0c79e0f test cases and clean up 2015-02-09 21:10:19 +01:00
Niels 0cfd0f5d68 added test cases and fixed some warnings 2015-02-09 20:21:26 +01:00
Niels e53e84e1cc more test cases 2015-02-09 18:45:32 +01:00
Niels 48392cfa79 some bug fixing 2015-02-09 18:02:31 +01:00
Niels 330ffd952b removed reverse_iterators and fixed some bugs 2015-02-08 19:18:39 +01:00
Niels 441a6f267f more test cases 2015-02-08 16:08:48 +01:00
Niels 16b91d491e more test cases 2015-02-08 15:47:40 +01:00