170 Commits

Author SHA1 Message Date
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
501ff3b3d0 if it's a big number, but still an integer, print it exactly!
git-svn-id: http://svn.code.sf.net/p/cjson/code@18 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2009-11-25 15:18:19 +00:00
Dave Gamble
0dbe29ffe8 fix bug 2895595 from jshvrsn whereby values outside of INT_MIN/INT_MAX range are printed incorrectly as ints.
git-svn-id: http://svn.code.sf.net/p/cjson/code@17 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2009-11-11 00:15:53 +00:00
Dave Gamble
69dca155a9 comment these out for clarity...
git-svn-id: http://svn.code.sf.net/p/cjson/code@16 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2009-11-11 00:14:51 +00:00
Dave Gamble
6b51f927e9 two bizarre tweaks to demonstrate the replace functionality.
git-svn-id: http://svn.code.sf.net/p/cjson/code@15 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2009-11-10 23:51:15 +00:00
Dave Gamble
991b577247 fix the ReplaceObject functions; tighten them up, add some more checks for stability.
git-svn-id: http://svn.code.sf.net/p/cjson/code@14 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2009-11-10 23:50:43 +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
37da1d2493 Fix for printing values that contain % literals. Thanks to Jimmy Tam!
git-svn-id: http://svn.code.sf.net/p/cjson/code@11 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2009-11-06 15:41:44 +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
c052999a71 fix bug: 2885206, whereby memory would leak in print_object if print_value failed.
git-svn-id: http://svn.code.sf.net/p/cjson/code@9 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2009-10-29 00:06:15 +00:00
Dave Gamble
75e1702659 fix bug: 2859459 (crash when printing JSON)
handling of string length was incorrect.



git-svn-id: http://svn.code.sf.net/p/cjson/code@8 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2009-10-28 23:59:05 +00:00
Dave Gamble
10d4ec62e0 -lm may be necessary to compile.
git-svn-id: http://svn.code.sf.net/p/cjson/code@7 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2009-10-28 23:58:17 +00:00
Dave Gamble
e5fe65f58a ...try that again... better WINDOWS/WIN32/__WIN32__ (for Borland C) sentinelling
also missed the casts on realloc()



git-svn-id: http://svn.code.sf.net/p/cjson/code@6 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2009-09-09 18:56:31 +00:00
Dave Gamble
6d50358e26 Windows/c++ support (with thanks to Ron Hall):
added strcasecmp->stricmp
added (char*) casts to all mallocs (as reqd by c++)
added skip(value) to cJSON_Parse to allow for whitespace before the actual data


git-svn-id: http://svn.code.sf.net/p/cjson/code@5 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2009-09-09 10:44:00 +00:00
Dave Gamble
733e62f9f4 a readme of documentation.
git-svn-id: http://svn.code.sf.net/p/cjson/code@4 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2009-08-26 04:58:08 +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
a4a4e7cbff make these PROPERLY ansi-c compliant ;)
git-svn-id: http://svn.code.sf.net/p/cjson/code@2 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2009-08-26 03:57:15 +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