-
Notifications
You must be signed in to change notification settings - Fork 10
JSON XML Parser
landawn edited this page Apr 29, 2018
·
7 revisions
JSONParser/XMLParser is one of the core parts in AbacusUtil. It provides the high performance APIs for the general data transfer among servers/clients and conversion among different types. AbacusUtil also provides the wrappers for Jackson, Fastjson, Gson, Kryo, ObjectMapper with integrated and concise APIs. Here is a simple sample:
public void test_xmlParser() {
Account account = createAccount();
String str = xmlParser.serialize(account);
// XML: <account><id>0</id><gui>bf99db2f-9698-423c-ad7c-1668d6f03502</gui><firstName>3f2dec29-1676-4ae9-8cca-ff339d9dd5f5</firstName><lastName>2fb341dd-1e6e-4b57-ab73-ceba94ff7b65</lastName><status>0</status><lastUpdateTime>1439324554075</lastUpdateTime><createTime>1439324554075</createTime></account>
Account account2 = xmlParser.deserialize(Account.class, str);
assertEquals(account, account2);
}
public void test_jsonParser() {
Account account = createAccount(N.uuid(), N.uuid());
String str = jsonParser.serialize(account);
// JSON: {"id":0, "gui":"d0bc219b-b1be-4f3d-a99f-aa03001ffc62", "firstName":"15bf3775-60bb-4f52-bc8a-e95364aa4b1d", "lastName":"1253246a-f6ec-4d31-b495-3c0deb26943d", "status":0, "lastUpdateTime":1439324554283, "createTime":1439324554283}
Account account2 = jsonParser.deserialize(Account.class, str);
assertEquals(account, account2);
}
public void test_kryoParser() {
Account account = createAccount(N.uuid(), N.uuid());
String str = kryoParser.serialize(account);
// Encoded with Base 64: AQEAamF2YS5zcWwuVGltZXN0YW3wAcaIt/PxKQABODY2ODJjYjItYTMyNy00YjNiLTg1YzYtZDM2Y2QzNDE3MWWyATFjNTVjY2QyLWZlZDItNDliZS1hMmY0LTFlZDBkNDQzNGZltwABOTJhOWVhOWEtYTMzNi00ODNhLTkwZDctNDY1NDhjZmU0Mjm2AQABxoi38/EpAA==
Account account2 = kryoParser.deserialize(Account.class, str);
assertEquals(account, account2);
}
We have put a lot of efforts on performance tuning as we know it's so critical for this genernal framework. The JSON parser is about two times faster than Gson and close to Fastjson/Jackson. The XML parser is one the fastest xml parsers in the world. (Refer to project HelloAbacusUtil.zip for the complete performance test)
- How to Learn/Use the APIs correctly and efficiently
- Programming in RDBMS with Jdbc/PreparedQuery/SQLExecutor/Mapper/Dao
- JSON/XML Parser
- SQLite Executor
- SQL Executor
- SQL Builder
- SQL Mapper
- DataSet
- JdbcUtil/CSVUtil
- IOUtil
- PrimitiveList
- Profiler
- Http Client
- Web Services
- Programming in Android
- Parse/Analyze/Operate (Big) Data (on N servers in parallel)
- Code Generation
- Introduction to JDBC
- Naming Convention
- Partitioning/Distribution
- SQL/NoSQL
- Model/Entity