Closed GoogleCodeExporter closed 8 years ago
You can provide a ContainerFactory to get a LinkedHashMap during decoding:
http://code.google.com/p/json-simple/wiki/DecodingExamples#Example_4_-_Container
_factory
And then use JSONValue.toJSONString() to encode the object:
http://code.google.com/p/json-simple/wiki/EncodingExamples#Example_1-3_-_Encode_
a_JSON_object_-_Using_Map
Then you will get what you expect.
Original comment by fangyid...@gmail.com
on 2 Sep 2010 at 4:51
Original comment by fangyid...@gmail.com
on 2 Sep 2010 at 4:52
Should'nt this be considered a possible fix for the next release?
Original comment by ankos...@gmail.com
on 2 Sep 2010 at 5:45
Just to note that LinkedHashMaps are somewhat slower for get and put operations
than regular HashMaps. So some people may be interested in keeping good
performance than maintaining object member order.
Original comment by vladimir...@gmail.com
on 9 Mar 2011 at 1:50
I attached 2 performance tests for constructing hash-map/linked-hash-map:
1) inserts 1.5M integers into each map, and
2) creates many(1.5M) small(<10 keys) maps.
Here are the results:
Many-keys(1500000) delay: mean(-14,63%), stdev(1,86%)
Many-hashes(1500000) delay: mean(23,40%), stdev(5,18%)
Interestingly enough, linked-hash is actually faster(!) when inserting
many-keys.
I'm suspecting it is due to the improved re-sizing of linked-hash-tables.
But it is ~23% slower when creating a lot smaller hashes.
I expect searching into the hashes to be exactly the same.
TEST-ENV:
java.version=1.6.0_22,
java.runtime.version=1.6.0_22-b04,
java.runtime.name=Java(TM) SE Runtime Environment,
java.vendor.url=http://java.sun.com/,
java.vm.version=17.1-b03, java.vm.vendor=Sun Microsystems Inc.,
java.vm.info=mixed mode,
java.vm.name=Java HotSpot(TM) Server VM,
sun.management.compiler=HotSpot Tiered Compilers,
os.arch=i386,
os.version=2.6.36-ck-r3,
os.name=Linux
Original comment by ankos...@gmail.com
on 9 Mar 2011 at 5:12
Attachments:
Issue 40 has been merged into this issue.
Original comment by fangyid...@gmail.com
on 10 Mar 2011 at 10:14
If you are using the Transformer code to collect the Json Strings as
JSONObject +JSONArrays, would it not be better to have theJ SONObject extend
LinkedHashMap as ooposed HashMap to preserve the order of elements
regds,
Chiths
Original comment by chi...@gmail.com
on 11 Mar 2011 at 3:08
Original issue reported on code.google.com by
ankos...@gmail.com
on 2 Sep 2010 at 4:30