<div dir="ltr">when using mongodb with jansson, intermittent failures will be seen because jansson would change the order of keys inside a json object. mongodb would expect the first key to be a command, for example "insert". this is disastrous! below is a fix for jansson which will preserve the order on which the json object was created.<div><br></div><div><div>--- modules/jansson/jansson_utils.c.old<span class="" style="white-space:pre">   </span>2015-07-06 17:41:25.852770681 +0800</div><div>+++ modules/jansson/jansson_utils.c<span class="" style="white-space:pre">     </span>2015-07-06 17:42:27.384769579 +0800</div><div>@@ -33,7 +33,7 @@</div><div> <span class="" style="white-space:pre">      </span>val->flags = 0;</div><div> </div><div> <span class="" style="white-space:pre">      </span>if(json_is_object(v) || json_is_array(v)) {</div><div>-<span class="" style="white-space:pre">               </span>const char* value = json_dumps(v, JSON_COMPACT);</div><div>+<span class="" style="white-space:pre">          </span>const char* value = json_dumps(v, JSON_COMPACT|JSON_PRESERVE_ORDER);</div><div> <span class="" style="white-space:pre">             </span>*freeme = (char*)value;</div><div> <span class="" style="white-space:pre">          </span>val->rs.s = (char*)value;</div><div> <span class="" style="white-space:pre">             </span>val->rs.len = strlen(value);</div></div><div><br></div><div><br></div><div><div><br clear="all"><div><div class="gmail_signature">Kelvin Chua</div></div>
</div></div></div>