jsoniter (json-iterator) is fast and flexible JSON parser available in Java and Go
- Jsoniter is the fastest JSON parser. It could be up to 10x faster than normal parser, data binding included. Shameless self benchmark
- Extremely flexible api. You can mix and match three different styles: bind-api, any-api or iterator-api. Checkout your api choices
- Unique iterator api can iterate through JSON directly, zero memory allocation! See how iterator works
Here is a quick show off, for more complete report you can checkout the full benchmark with in-depth optimization to back the numbers up
Bind-api should always be the first choice. Given this JSON document [0,1,2,3]
Parse with Java bind-api
import com.jsoniter.JsonIterator;
JsonIterator iter = JsonIterator.parse("[0,1,2,3]");
int[] val = iter.read(int[].class);
System.out.println(val[3]);
When you do not need to get all the data back, just extract some.
Parse with Java iterator-api
import com.jsoniter.JsonIterator;
JsonIterator iter = JsonIterator.parse("[0, [1, 2], [3, 4], 5]");
int count = 0;
while(iter.readArray()) {
iter.skip();
count++;
}
System.out.println(count); // 4
Parse with Java any-api
import com.jsoniter.JsonIterator;
JsonIterator iter = JsonIterator.parse("[{'field1':'11','field2':'12'},{'field1':'21','field2':'22'}]".replace('\'', '"'));
Any val = iter.readAny();
System.out.println(val.toInt(1, "field2")); // 22
Notice you can extract from nested data structure, and convert any type to the type to you want.
<dependency>
<groupId>com.jsoniter</groupId>
<artifactId>jsoniter</artifactId>
<version>0.9.2</version>
</dependency>
Report issue or pull request, or email taowen@gmail.com, or