43
Comparing JSON libraries Sean Sullivan Portland Java User Group July 19, 2011

Comparing JSON Libraries - July 19 2011

  • Upload
    sullis

  • View
    11.400

  • Download
    0

Embed Size (px)

DESCRIPTION

Comparing JSON Lib

Citation preview

Page 1: Comparing JSON Libraries - July 19 2011

Comparing JSON libraries

Sean SullivanPortland Java User Group

July 19, 2011

Page 2: Comparing JSON Libraries - July 19 2011
Page 3: Comparing JSON Libraries - July 19 2011
Page 4: Comparing JSON Libraries - July 19 2011
Page 5: Comparing JSON Libraries - July 19 2011
Page 6: Comparing JSON Libraries - July 19 2011

JavaScript Object Notation

Page 7: Comparing JSON Libraries - July 19 2011

pentagon hexagon json

{ “hello” : “world”, “count” : 1 }

Page 8: Comparing JSON Libraries - July 19 2011

JSON is a data interchange format

Page 9: Comparing JSON Libraries - July 19 2011

{

“name” : “Mock Crest Tavern”,

“tags” : [ “music”, “beer”, “tots” ],

“location” :

{

“city” : “Portland”,

“state” : “Oregon”

}

}

Page 10: Comparing JSON Libraries - July 19 2011

• based on a subset of the JavaScript programming language

• text format

• language independent

JSON

Page 11: Comparing JSON Libraries - July 19 2011

RFC 4627

Page 12: Comparing JSON Libraries - July 19 2011

How is JSON useful to Java developers?

Page 13: Comparing JSON Libraries - July 19 2011
Page 14: Comparing JSON Libraries - July 19 2011

Web Services

Page 15: Comparing JSON Libraries - July 19 2011
Page 16: Comparing JSON Libraries - July 19 2011
Page 17: Comparing JSON Libraries - July 19 2011
Page 18: Comparing JSON Libraries - July 19 2011

“In the first version of our API, data was available in XML, with JSON support added largely as an afterthought. XML as a means for delivering developer-friendly data hasn’t aged well. Seeing the growing inclination of developers and API makers alike towards JSON, we’ve decided to eliminate XML support and put the energy spent there into getting our JSON implementation just right.”

July 2011

http://engineering.tumblr.com/post/7541361718/introducing-tumblrs-new-api

Page 19: Comparing JSON Libraries - July 19 2011
Page 20: Comparing JSON Libraries - July 19 2011

JSON libraries

• json.org library

• Google GSON

• Jackson

• lift-json

Page 21: Comparing JSON Libraries - July 19 2011

http://json.org/javadoc

Page 22: Comparing JSON Libraries - July 19 2011

import org.json.*;

JSONObject obj = new JSONObject();

obj.put(“Hello”, “World”);

obj.put(“count”, 1);

String json = obj.toString();

Page 23: Comparing JSON Libraries - July 19 2011

http://jackson.codehaus.org/

Page 24: Comparing JSON Libraries - July 19 2011

import org.codehaus.jackson.*;

import org.codehaus.jackson.map.*;

ObjectMapper mapper = new ObjectMapper();

String json = mapper.writeValueAsString(foo);

Foo foo2 = mapper.readValue(json, Foo.class);

Page 25: Comparing JSON Libraries - July 19 2011
Page 26: Comparing JSON Libraries - July 19 2011
Page 27: Comparing JSON Libraries - July 19 2011

http://code.google.com/p/google-gson/

Page 28: Comparing JSON Libraries - July 19 2011

import com.google.gson.*;

GsonBuilder builder = new GsonBuilder();

Gson gson = builder.create();

String json = gson.toJson(foo);

Foo foo2 = gson.fromJson(json, Foo.class);

Page 29: Comparing JSON Libraries - July 19 2011

Jackson vs GSON

• GSON serializes all non-transient non-static fields. GSON accesses fields directly with Java’s Reflection API

• Jackson uses JavaBean methods (setter methods / getter methods)

Page 30: Comparing JSON Libraries - July 19 2011

JSON and Scala

Page 31: Comparing JSON Libraries - July 19 2011

lift-json

Page 32: Comparing JSON Libraries - July 19 2011

JSON and Android

Page 33: Comparing JSON Libraries - July 19 2011
Page 34: Comparing JSON Libraries - July 19 2011
Page 35: Comparing JSON Libraries - July 19 2011

json.org JsonReader, JsonWriter

Android 1.x Y N

Android 2.x Y N

Android 3.x Y Y

Page 36: Comparing JSON Libraries - July 19 2011

Benchmarks

Page 37: Comparing JSON Libraries - July 19 2011
Page 38: Comparing JSON Libraries - July 19 2011
Page 39: Comparing JSON Libraries - July 19 2011

Related topics

Page 40: Comparing JSON Libraries - July 19 2011
Page 42: Comparing JSON Libraries - July 19 2011

For more information

• http://www.json.org

• http://en.wikipedia.org/wiki/JSON

Page 43: Comparing JSON Libraries - July 19 2011

Thank you