hash keys have to be escaped like regular strings
authorerickson <erickson@9efc2488-bf62-4759-914b-345cdb29e865>
Wed, 25 Mar 2009 22:45:48 +0000 (22:45 +0000)
committererickson <erickson@9efc2488-bf62-4759-914b-345cdb29e865>
Wed, 25 Mar 2009 22:45:48 +0000 (22:45 +0000)
git-svn-id: svn://svn.open-ils.org/OpenSRF/branches/rel_1_0@1683 9efc2488-bf62-4759-914b-345cdb29e865

src/libopensrf/osrf_json_object.c

index 335d70e..2c8bfee 100644 (file)
@@ -322,7 +322,12 @@ static void add_json_to_buffer( const jsonObject* obj, growing_buffer * buf ) {
 
                        while( (item = osrfHashIteratorNext(itr)) ) {
                                if(i++ > 0) OSRF_BUFFER_ADD(buf, ",");
-                               buffer_fadd(buf, "\"%s\":", osrfHashIteratorKey(itr));
+                           char* data = osrfHashIteratorKey(itr);
+                           int len = strlen(data);
+                           char* output = uescape(data, len, 1);
+                           OSRF_BUFFER_ADD(buf, output);
+                               buffer_fadd(buf, "\"%s\":", output);
+                           free(output);
                                add_json_to_buffer( item, buf );
                        }