Commit Graph

70 Commits

Author SHA1 Message Date
Dave Gamble
060e6563c0 Add more patch functionality and some more utils.
Also add a new #define to cJSON.h for SetNumberValue.


git-svn-id: svn://svn.code.sf.net/p/cjson/code@66 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2015-02-11 01:29:40 +00:00
Dave Gamble
3c6b3cc617 start of JSON Patch implementation. cJSON gained a cJSON_InsertItemToArray which pushes elements up by one.
This is needed for JSON Patch. Everything but Test is implemented for ApplyPatches.


git-svn-id: svn://svn.code.sf.net/p/cjson/code@65 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2015-02-10 14:17:59 +00:00
Dave Gamble
d9fc81e6c8 Added buffered printing methods for faster printing.
git-svn-id: svn://svn.code.sf.net/p/cjson/code@61 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2015-02-09 17:34:35 +00:00
Dave Gamble
73cc8dd1c4 cJSON_Minify (which strips comments),
fixed buffer overflow
const * for array creates


git-svn-id: http://svn.code.sf.net/p/cjson/code@55 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2013-08-14 12:58:13 +00:00
Dave Gamble
15adf71272 Tidy comments. Add cJSON_SetIntValue.
git-svn-id: http://svn.code.sf.net/p/cjson/code@53 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2013-02-09 12:56:01 +00:00
Dave Gamble
02a1e544f7 add cJSON_AddBoolToObject().
git-svn-id: http://svn.code.sf.net/p/cjson/code@51 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2013-02-06 12:59:21 +00:00
Dave Gamble
96c59f3e49 Wire in ParseWithOpts to allow detection of JSON with following garbage.
git-svn-id: http://svn.code.sf.net/p/cjson/code@50 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2013-02-06 12:44:17 +00:00
Dave Gamble
927aa631b8 Added cJSON_Duplicate. With commentary
git-svn-id: http://svn.code.sf.net/p/cjson/code@48 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2013-02-05 18:23:22 +00:00
Dave Gamble
4678f33b5c Fix up ANSI issues.
git-svn-id: http://svn.code.sf.net/p/cjson/code@43 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2013-02-05 17:00:31 +00:00
Dave Gamble
6a58ba5285 Include some analysis so that you can debug a failed parse.
You really oughtn't go too far with this, because it's only loose information; as I've said before, cJSON +isn't+ a validating parser. But this might give you enough info to save yourself on some rare occasion ;)



git-svn-id: http://svn.code.sf.net/p/cjson/code@38 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2011-03-02 21:22:57 +00:00
Dave Gamble
02d86ef778 Update to permit compilation with gcc -ansi flag
(changed all C++ // comments to C /* */ comments).



git-svn-id: http://svn.code.sf.net/p/cjson/code@34 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2011-03-02 19:09:43 +00:00
Dave Gamble
6711153d41 CreateBool, because it's useful ;)
git-svn-id: http://svn.code.sf.net/p/cjson/code@31 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2010-02-12 16:24:54 +00:00
Dave Gamble
79a796aed2 Detatch and Remove objects from Arrays/Objects.
git-svn-id: http://svn.code.sf.net/p/cjson/code@21 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2009-11-25 17:04:05 +00:00
Dave Gamble
29b085bc5d Feature Request: 2903802.
If you need to add an existing cJSON to a new object, but the existing object
must not be affected by this, use cJSON_AddItemReferenceTo<Array|Object>.

This will make a "reference" to the existing object (which is what you really mean to do),
and allow you to use it with a new object without fear of names being corrupted or things
being deleted.

Think of it like a reference, since that's pretty much what it is.
If you modify the resulting object (i.e. you AddItemReference, then retrieve with GetObjectItem,
and then start adding/replacing) you'll modify the object you pass in (in other words, this
doesn't clone everything, since that would probably end up being wasteful of space), however,
if you add it, and treat it as if it were const, everything will be fine!
 


git-svn-id: http://svn.code.sf.net/p/cjson/code@20 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2009-11-25 16:52:07 +00:00
Dave Gamble
c4e8954eb2 Feature request: 2903779.
Unformatted output. :)



git-svn-id: http://svn.code.sf.net/p/cjson/code@19 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2009-11-25 15:27:39 +00:00
Dave Gamble
b3bd706f8f prototype versions of ReplaceObject.
Based on an idea from Daniel Harcek; these are designed to allow you to replace entries in an object or array with new
values. The old values get deleted and the new ones are wired into place.

This leads to a structure like this:
cJSON_ReplaceItemInObject(myobject, "spooncount", cJSON_CreateNumber(24));

cJSON +NEVER+ type checks, so it's perfectly legal to replace an object with a string (to cJSON) though it may not be in your schema!



git-svn-id: http://svn.code.sf.net/p/cjson/code@13 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2009-11-10 23:32:11 +00:00
Dave Gamble
5cca4e2c57 simplify the rendering code so there's no 'realloc' going on.
That seemed horribly inefficient to me.
Now we use multiple passes and can test for failure more carefully.


git-svn-id: http://svn.code.sf.net/p/cjson/code@12 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2009-11-10 22:57:37 +00:00
Dave Gamble
7ca2c994a7 incorporate hooks feature from bug 2883206
also new errorhandling for memory failure cases. +I HAVE NOT CHECKED THIS FOR ABILITY TO LEAK!+



git-svn-id: http://svn.code.sf.net/p/cjson/code@10 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2009-10-29 00:21:54 +00:00
Dave Gamble
5bd220c8dc add macros. tighten code.
git-svn-id: http://svn.code.sf.net/p/cjson/code@3 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2009-08-26 04:27:07 +00:00
Dave Gamble
805b652e51 here it is, cJSON 1.0
git-svn-id: http://svn.code.sf.net/p/cjson/code@1 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2009-08-26 03:55:20 +00:00