SlideShare une entreprise Scribd logo
1  sur  16
Télécharger pour lire hors ligne
JSON vs GSON vs
JACKSON
- Vinaykumar Hebballi
Topics to cover
 Overview of JSON
 The working of GSON
 The working of JACKSON
 Comparison of JSON,GSON and JACKSON.
 Conclusion
2JSON vs GSON vs JACKSON06/21/16
What is JSON
 JSON is a lightweight data interchange format .
 The most important aspects of JSON are
 Simplicity
 Extensibility
 Interoperability
 Openness and Human readability.
3JSON vs GSON vs JACKSON06/21/16
The working of GSON
 GSON is an Java library to serialize and deserialize Java
objects to (and from) JSON.
 It provides two methods :-
 Gson.toJson to serialize java objects.
 Gson.fromJson to deserialize json objects.
4JSON vs GSON vs JACKSON06/21/16
GSON Example
 Serialization:-
 Gson gson = new Gson();
Car audi = new Car("Audi", "A4", 1.8, false);
Car skoda = new Car(“Skoda", "Octavia", 2.0, true);
Car[] cars = {audi, skoda};
Person johnDoe = new Person("John", "Doe", 245987453, 35,
cars);
System.out.println(gson.toJson(johnDoe));
5JSON vs GSON vs JACKSON06/21/16
GSON Example
 Deserialization:-
 Gson gson = new Gson();
String json = "{"name":"John","surname":"Doe","cars":
[{"manufacturer":"Audi","model":"A4","capacity":1.8,"a
ccident":false},
{"manufacturer":"Škoda","model":"Octavia","capacity":2.
0,"accident":true}], "phone":245987453}";
Person johnDoe = gson.fromJson(json, Person.class);
System.out.println(johnDoe.toString());
6JSON vs GSON vs JACKSON06/21/16
The working of JACKSON
 It is a Java library for processing JSON.
 Jackson aims to be the best possible combination of fast,
correct, lightweight, and friendly for developers.
 Jackson offers three alternative methods:-
 Stream API
 Tree Model
 Data Binding
7JSON vs GSON vs JACKSON06/21/16
JACKSON Example- Data Binding
 Read the Values from JSON file:-
 ObjectMapper mapper = new ObjectMapper();
User user = mapper.readValue(new File("user.json"), User.class);
 Write the values To the JSON file:-
 mapper.writeValue(new File("user-modified.json"), user);
8JSON vs GSON vs JACKSON06/21/16
JACKSON Example- Tree Model
 Tree Model:-
 ObjectMapper mapper = new ObjectMapper();
ArrayNode arrayNode = mapper.createArrayNode();
ObjectNode objectNode = mapper.createObjectNode();
objectNode.put("Firstname", student.getFirstName());
objectNode.put("Lastname",student.getLastName());
objectNode.put("age", student.getAge());
objectNode.put("address", student.getAddress());
objectNode.put("studentId", student.getStudentId());
arrayNode.add(objectNode);
9JSON vs GSON vs JACKSON06/21/16
JACKSON Example- Stream API
 Writing to File:-
JsonFactory f = new JsonFactory();
JsonGenerator g =f.createJsonGenerator(new File("user.json"));
g.writeStartObject();
g.writeStartArray();
g.writeEndArray();
g.writeEndObject();
g.close();
06/21/16 JSON vs GSON vs JACKSON 10
JACKSON Example- Stream API
JsonFactory jfactory = new JsonFactory();
JsonParser jParser = jfactory.createJsonParser(new File("c://temp/user.json"));
while (jParser.nextToken() != JsonToken.END_OBJECT) {
if ("name".equals(fieldname)) {
jParser.nextToken();
System.out.println(jParser.getText()); }
if ("age".equals(fieldname)) {
jParser.nextToken();
System.out.println(jParser.getIntValue()); }
if ("messages".equals(fieldname)) {
jParser.nextToken();
while (jParser.nextToken() != JsonToken.END_ARRAY) {
System.out.println(jParser.getText()); }}
06/21/16 JSON vs GSON vs JACKSON 11
COMPARISON-Big File
12JSON vs GSON vs JACKSON06/21/16
COMPARISON-Small File
13JSON vs GSON vs JACKSON06/21/16
CONCLUSION
 If you are dealing with big JSON files, then Jackson is your
library of interest.
 If you are dealing with with lots of small JSON requests then
GSON is your library of interest.
 If you end up having to often deal with both types of files,
then JSON.simple. Neither Jackson nor GSON perform as
well across multiple files sizes.
14JSON vs GSON vs JACKSON06/21/16
References:
 www.json.org
 http://wiki.fasterxml.com/JacksonHome
 https://google-
gson.googlecode.com/svn/trunk/gson/docs/javadocs/c
om/google/gson/Gson.html
15JSON vs GSON vs JACKSON06/21/16
Thank you

Contenu connexe

Tendances (20)

react-slides.pptx
react-slides.pptxreact-slides.pptx
react-slides.pptx
 
Java EE Introduction
Java EE IntroductionJava EE Introduction
Java EE Introduction
 
Introduction to thymeleaf
Introduction to thymeleafIntroduction to thymeleaf
Introduction to thymeleaf
 
Collectors in the Wild
Collectors in the WildCollectors in the Wild
Collectors in the Wild
 
Spring mvc
Spring mvcSpring mvc
Spring mvc
 
Presentation swagger
Presentation swaggerPresentation swagger
Presentation swagger
 
Anatomy of a Modern Node.js Application Architecture
Anatomy of a Modern Node.js Application Architecture Anatomy of a Modern Node.js Application Architecture
Anatomy of a Modern Node.js Application Architecture
 
Mongodb vs mysql
Mongodb vs mysqlMongodb vs mysql
Mongodb vs mysql
 
Node.js Express Framework
Node.js Express FrameworkNode.js Express Framework
Node.js Express Framework
 
Spring MVC
Spring MVCSpring MVC
Spring MVC
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDB
 
PostgreSQL
PostgreSQLPostgreSQL
PostgreSQL
 
Java version 11 - les 9 nouveautes
Java version 11 -  les 9 nouveautesJava version 11 -  les 9 nouveautes
Java version 11 - les 9 nouveautes
 
Web api
Web apiWeb api
Web api
 
OData: A Standard API for Data Access
OData: A Standard API for Data AccessOData: A Standard API for Data Access
OData: A Standard API for Data Access
 
HTML5 DRAG AND DROP
HTML5 DRAG AND DROPHTML5 DRAG AND DROP
HTML5 DRAG AND DROP
 
Java persistence api 2.1
Java persistence api 2.1Java persistence api 2.1
Java persistence api 2.1
 
Java 10 New Features
Java 10 New FeaturesJava 10 New Features
Java 10 New Features
 
React js
React jsReact js
React js
 
Reactjs
Reactjs Reactjs
Reactjs
 

Similaire à Json vs Gson vs Jackson

Similaire à Json vs Gson vs Jackson (20)

Working with JSON
Working with JSONWorking with JSON
Working with JSON
 
Working with JSON.pptx
Working with JSON.pptxWorking with JSON.pptx
Working with JSON.pptx
 
Json
JsonJson
Json
 
java script json
java script jsonjava script json
java script json
 
JSON(JavaScript Object Notation) Presentation transcript
JSON(JavaScript Object Notation) Presentation transcriptJSON(JavaScript Object Notation) Presentation transcript
JSON(JavaScript Object Notation) Presentation transcript
 
Comparing JSON Libraries - July 19 2011
Comparing JSON Libraries - July 19 2011Comparing JSON Libraries - July 19 2011
Comparing JSON Libraries - July 19 2011
 
JSON - JavaScript Object Notation
JSON - JavaScript Object NotationJSON - JavaScript Object Notation
JSON - JavaScript Object Notation
 
Mongodb
MongodbMongodb
Mongodb
 
Json
JsonJson
Json
 
Json at work overview and ecosystem-v2.0
Json at work   overview and ecosystem-v2.0Json at work   overview and ecosystem-v2.0
Json at work overview and ecosystem-v2.0
 
An introduction to json
An introduction to jsonAn introduction to json
An introduction to json
 
Json
JsonJson
Json
 
JSON
JSONJSON
JSON
 
Hands on JSON
Hands on JSONHands on JSON
Hands on JSON
 
Unit-2 JSON.pdf
Unit-2 JSON.pdfUnit-2 JSON.pdf
Unit-2 JSON.pdf
 
JSON and The Argonauts
JSON and The ArgonautsJSON and The Argonauts
JSON and The Argonauts
 
JSON & AJAX.pptx
JSON & AJAX.pptxJSON & AJAX.pptx
JSON & AJAX.pptx
 
Gson
GsonGson
Gson
 
Basics of JSON (JavaScript Object Notation) with examples
Basics of JSON (JavaScript Object Notation) with examplesBasics of JSON (JavaScript Object Notation) with examples
Basics of JSON (JavaScript Object Notation) with examples
 
Json Tutorial
Json TutorialJson Tutorial
Json Tutorial
 

Dernier

Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...Jeffrey Haguewood
 
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...BookNet Canada
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024TopCSSGallery
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxfnnc6jmgwh
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Nikki Chapple
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesBernd Ruecker
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructureitnewsafrica
 
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Mark Simos
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observabilityitnewsafrica
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Kaya Weers
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesManik S Magar
 

Dernier (20)

Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
 
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architectures
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
 
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
 

Json vs Gson vs Jackson

  • 1. JSON vs GSON vs JACKSON - Vinaykumar Hebballi
  • 2. Topics to cover  Overview of JSON  The working of GSON  The working of JACKSON  Comparison of JSON,GSON and JACKSON.  Conclusion 2JSON vs GSON vs JACKSON06/21/16
  • 3. What is JSON  JSON is a lightweight data interchange format .  The most important aspects of JSON are  Simplicity  Extensibility  Interoperability  Openness and Human readability. 3JSON vs GSON vs JACKSON06/21/16
  • 4. The working of GSON  GSON is an Java library to serialize and deserialize Java objects to (and from) JSON.  It provides two methods :-  Gson.toJson to serialize java objects.  Gson.fromJson to deserialize json objects. 4JSON vs GSON vs JACKSON06/21/16
  • 5. GSON Example  Serialization:-  Gson gson = new Gson(); Car audi = new Car("Audi", "A4", 1.8, false); Car skoda = new Car(“Skoda", "Octavia", 2.0, true); Car[] cars = {audi, skoda}; Person johnDoe = new Person("John", "Doe", 245987453, 35, cars); System.out.println(gson.toJson(johnDoe)); 5JSON vs GSON vs JACKSON06/21/16
  • 6. GSON Example  Deserialization:-  Gson gson = new Gson(); String json = "{"name":"John","surname":"Doe","cars": [{"manufacturer":"Audi","model":"A4","capacity":1.8,"a ccident":false}, {"manufacturer":"Škoda","model":"Octavia","capacity":2. 0,"accident":true}], "phone":245987453}"; Person johnDoe = gson.fromJson(json, Person.class); System.out.println(johnDoe.toString()); 6JSON vs GSON vs JACKSON06/21/16
  • 7. The working of JACKSON  It is a Java library for processing JSON.  Jackson aims to be the best possible combination of fast, correct, lightweight, and friendly for developers.  Jackson offers three alternative methods:-  Stream API  Tree Model  Data Binding 7JSON vs GSON vs JACKSON06/21/16
  • 8. JACKSON Example- Data Binding  Read the Values from JSON file:-  ObjectMapper mapper = new ObjectMapper(); User user = mapper.readValue(new File("user.json"), User.class);  Write the values To the JSON file:-  mapper.writeValue(new File("user-modified.json"), user); 8JSON vs GSON vs JACKSON06/21/16
  • 9. JACKSON Example- Tree Model  Tree Model:-  ObjectMapper mapper = new ObjectMapper(); ArrayNode arrayNode = mapper.createArrayNode(); ObjectNode objectNode = mapper.createObjectNode(); objectNode.put("Firstname", student.getFirstName()); objectNode.put("Lastname",student.getLastName()); objectNode.put("age", student.getAge()); objectNode.put("address", student.getAddress()); objectNode.put("studentId", student.getStudentId()); arrayNode.add(objectNode); 9JSON vs GSON vs JACKSON06/21/16
  • 10. JACKSON Example- Stream API  Writing to File:- JsonFactory f = new JsonFactory(); JsonGenerator g =f.createJsonGenerator(new File("user.json")); g.writeStartObject(); g.writeStartArray(); g.writeEndArray(); g.writeEndObject(); g.close(); 06/21/16 JSON vs GSON vs JACKSON 10
  • 11. JACKSON Example- Stream API JsonFactory jfactory = new JsonFactory(); JsonParser jParser = jfactory.createJsonParser(new File("c://temp/user.json")); while (jParser.nextToken() != JsonToken.END_OBJECT) { if ("name".equals(fieldname)) { jParser.nextToken(); System.out.println(jParser.getText()); } if ("age".equals(fieldname)) { jParser.nextToken(); System.out.println(jParser.getIntValue()); } if ("messages".equals(fieldname)) { jParser.nextToken(); while (jParser.nextToken() != JsonToken.END_ARRAY) { System.out.println(jParser.getText()); }} 06/21/16 JSON vs GSON vs JACKSON 11
  • 12. COMPARISON-Big File 12JSON vs GSON vs JACKSON06/21/16
  • 13. COMPARISON-Small File 13JSON vs GSON vs JACKSON06/21/16
  • 14. CONCLUSION  If you are dealing with big JSON files, then Jackson is your library of interest.  If you are dealing with with lots of small JSON requests then GSON is your library of interest.  If you end up having to often deal with both types of files, then JSON.simple. Neither Jackson nor GSON perform as well across multiple files sizes. 14JSON vs GSON vs JACKSON06/21/16
  • 15. References:  www.json.org  http://wiki.fasterxml.com/JacksonHome  https://google- gson.googlecode.com/svn/trunk/gson/docs/javadocs/c om/google/gson/Gson.html 15JSON vs GSON vs JACKSON06/21/16