jsonp coding dojo
TRANSCRIPT
![Page 1: Jsonp Coding Dojo](https://reader034.vdocuments.pub/reader034/viewer/2022051300/58ed95c41a28abd71e8b46b5/html5/thumbnails/1.jpg)
JSON ALAPOK
![Page 2: Jsonp Coding Dojo](https://reader034.vdocuments.pub/reader034/viewer/2022051300/58ed95c41a28abd71e8b46b5/html5/thumbnails/2.jpg)
"name": "John Doe", "age": 29, "siblings": ["Jane Doe", "Herry Doe"], "address": "city": "Budapest", "street": "Deak Square" , "alive": false, "description": null
![Page 3: Jsonp Coding Dojo](https://reader034.vdocuments.pub/reader034/viewer/2022051300/58ed95c41a28abd71e8b46b5/html5/thumbnails/3.jpg)
"name": "John Doe", // < String "age": 29, // < Number "siblings": ["Jane Doe", "Herry Doe"], // < Array "address": "city": "Budapest", "street": "Deak Square" , // < Object "alive": false, // < true/false "description": null // < null
![Page 4: Jsonp Coding Dojo](https://reader034.vdocuments.pub/reader034/viewer/2022051300/58ed95c41a28abd71e8b46b5/html5/thumbnails/4.jpg)
PROGRAMMING MODELSobject modelstreaming model
![Page 5: Jsonp Coding Dojo](https://reader034.vdocuments.pub/reader034/viewer/2022051300/58ed95c41a28abd71e8b46b5/html5/thumbnails/5.jpg)
PACKAGE: JAVAX.JSONreader interfacewriter interfacemodel builder interface
![Page 6: Jsonp Coding Dojo](https://reader034.vdocuments.pub/reader034/viewer/2022051300/58ed95c41a28abd71e8b46b5/html5/thumbnails/6.jpg)
PACKAGE: JAVAX.JSON.STREAMparser interfacegenerator interface
![Page 7: Jsonp Coding Dojo](https://reader034.vdocuments.pub/reader034/viewer/2022051300/58ed95c41a28abd71e8b46b5/html5/thumbnails/7.jpg)
LET'S CODE
![Page 8: Jsonp Coding Dojo](https://reader034.vdocuments.pub/reader034/viewer/2022051300/58ed95c41a28abd71e8b46b5/html5/thumbnails/8.jpg)
Docs:
https://docs.oracle.com/javaee/7/api/javax/json/package-summary.html
![Page 9: Jsonp Coding Dojo](https://reader034.vdocuments.pub/reader034/viewer/2022051300/58ed95c41a28abd71e8b46b5/html5/thumbnails/9.jpg)
EXERCISE 1:Olvassunk be json modelt stringből Használjunk hozzá
StringReader-t és JsonReader-t
Fordításhoz használjuk a Glassfish implementációt:org.glassfish; javax.json; 1.0.4
http://mvnrepository.com/artifact/org.glassfish/javax.json/1.0.4
![Page 10: Jsonp Coding Dojo](https://reader034.vdocuments.pub/reader034/viewer/2022051300/58ed95c41a28abd71e8b46b5/html5/thumbnails/10.jpg)
<!?xml version="1.0" encoding="UTF8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchemainstance" <modelversion>4.0.0</modelversion>
<groupid>hu.huog.jsonp</groupid> <artifactid>exercises</artifactid> <version>1.0SNAPSHOT</version>
<packaging>jar</packaging>
<build> <plugins> <plugin> <groupid>org.apache.maven.plugins</groupid> <artifactid>mavenjarplugin</artifactid> <configuration> <archive> <manifest> <mainclass>Exercise00</mainclass> <addclasspath>true</addclasspath> </manifest> </archive>
![Page 11: Jsonp Coding Dojo](https://reader034.vdocuments.pub/reader034/viewer/2022051300/58ed95c41a28abd71e8b46b5/html5/thumbnails/11.jpg)
</configuration> </plugin> </plugins> </build>
<dependencies> <dependency> <groupid>org.glassfish</groupid> <artifactid>javax.json</artifactid> <version>1.0.4</version> </dependency> </dependencies>
</project>
![Page 12: Jsonp Coding Dojo](https://reader034.vdocuments.pub/reader034/viewer/2022051300/58ed95c41a28abd71e8b46b5/html5/thumbnails/12.jpg)
import javax.json.Json;import javax.json.JsonReader;import javax.json.JsonStructure;
import java.io.StringReader;
public class Exercise01
private static final String jsonString = " \"name\": \"John Snow\""
public static void main(String[] args)
JsonReader reader = Json.createReader(new StringReader(jsonString)); JsonStructure jsonst = reader.read(); reader.close();
System.out.println("json: " + jsonst);
![Page 13: Jsonp Coding Dojo](https://reader034.vdocuments.pub/reader034/viewer/2022051300/58ed95c41a28abd71e8b46b5/html5/thumbnails/13.jpg)
EXERCISE 2:Készítsünk json modelt builder segítségével és írjuk ki
stringbe Használjunk JsonObjectBuilder-t,JsonArrayBuilder-t, JsonWriter-t, StringWriter-t
![Page 14: Jsonp Coding Dojo](https://reader034.vdocuments.pub/reader034/viewer/2022051300/58ed95c41a28abd71e8b46b5/html5/thumbnails/14.jpg)
import javax.json.Json;import javax.json.JsonObject;import javax.json.JsonWriter;import java.io.StringWriter;
public class Exercise01
public static void main(String[] args)
JsonObject model = Json.createObjectBuilder() .add("firstName", "Duke") .add("lastName", "Java") .add("age", 18) .add("streetAddress", "100 Internet Dr") .add("city", "JavaTown") .add("state", "JA") .add("postalCode", "12345") .add("phoneNumbers", Json.createArrayBuilder() .add(Json.createObjectBuilder() .add("type", "mobile") .add("number", "1111111111")) .add(Json.createObjectBuilder()
![Page 15: Jsonp Coding Dojo](https://reader034.vdocuments.pub/reader034/viewer/2022051300/58ed95c41a28abd71e8b46b5/html5/thumbnails/15.jpg)
.add("type", "home") .add("number", "2222222222"))) .build();
StringWriter strWriter = new StringWriter();
JsonWriter jsonWriter = Json.createWriter(strWriter); jsonWriter.writeObject(model); jsonWriter.close();
String jsonStr = strWriter.toString();
System.out.println("json: " + jsonStr);
![Page 16: Jsonp Coding Dojo](https://reader034.vdocuments.pub/reader034/viewer/2022051300/58ed95c41a28abd71e8b46b5/html5/thumbnails/16.jpg)
EXERCISE 3:Parsoljunk json stringet és irassuk ki a parse eventeket
Használjunk JsonParser-t
![Page 17: Jsonp Coding Dojo](https://reader034.vdocuments.pub/reader034/viewer/2022051300/58ed95c41a28abd71e8b46b5/html5/thumbnails/17.jpg)
import javax.json.Json;import javax.json.stream.JsonParser;import java.io.StringReader;
public class Exercise03
private static final String jsonString = " \"name\": \"John Snow\""
public static void main(String[] args)
JsonParser parser = Json.createParser(new StringReader(jsonString));
while (parser.hasNext()) JsonParser.Event event = parser.next(); switch(event) case START_ARRAY: case END_ARRAY: case START_OBJECT: case END_OBJECT: case VALUE_FALSE: case VALUE_NULL: case VALUE_TRUE:
![Page 18: Jsonp Coding Dojo](https://reader034.vdocuments.pub/reader034/viewer/2022051300/58ed95c41a28abd71e8b46b5/html5/thumbnails/18.jpg)
System.out.println(event.toString()); break; case KEY_NAME: System.out.print(event.toString() + " " + parser.getString() + " ");
break; case VALUE_STRING: case VALUE_NUMBER: System.out.println(event.toString() + " " + parser.getString()); break;
![Page 19: Jsonp Coding Dojo](https://reader034.vdocuments.pub/reader034/viewer/2022051300/58ed95c41a28abd71e8b46b5/html5/thumbnails/19.jpg)
EXERCISE 4:Készítsünk JSON stringet geerátor segítségével Használjunk
JsonGenerator-t, StringWriter-t
![Page 20: Jsonp Coding Dojo](https://reader034.vdocuments.pub/reader034/viewer/2022051300/58ed95c41a28abd71e8b46b5/html5/thumbnails/20.jpg)
import javax.json.Json;import javax.json.stream.JsonGenerator;import java.io.StringWriter;
public class Exercise04
public static void main(String[] args)
StringWriter writer = new StringWriter(); JsonGenerator gen = Json.createGenerator(writer); gen.writeStartObject() .write("firstName", "Duke") .write("lastName", "Java") .write("age", 18) .write("streetAddress", "100 Internet Dr") .write("city", "JavaTown") .write("state", "JA") .write("postalCode", "12345") .writeStartArray("phoneNumbers") .writeStartObject() .write("type", "mobile") .write("number", "1111111111")
![Page 21: Jsonp Coding Dojo](https://reader034.vdocuments.pub/reader034/viewer/2022051300/58ed95c41a28abd71e8b46b5/html5/thumbnails/21.jpg)
.writeEnd() .writeStartObject() .write("type", "home") .write("number", "2222222222") .writeEnd()
.writeEnd() .writeEnd(); gen.close();
String jsonString = writer.toString();
System.out.println("json:" + jsonString);
![Page 22: Jsonp Coding Dojo](https://reader034.vdocuments.pub/reader034/viewer/2022051300/58ed95c41a28abd71e8b46b5/html5/thumbnails/22.jpg)
JSR374 (JSON PROCESSING 1.1)
wget http://download.oracle.com/otn-pub/jcp/json_p-1_1-edr-spec/jsonp-1.1-edr1-sources.zipwget http://download.oracle.com/otn-pub/jcp/json_p-1_1-edr-spec/jsonp-1.1-edr1-javadoc.zip
http://download.oracle.com/otndocs/jcp/json_p-1_1-edr-spec/index.html
![Page 23: Jsonp Coding Dojo](https://reader034.vdocuments.pub/reader034/viewer/2022051300/58ed95c41a28abd71e8b46b5/html5/thumbnails/23.jpg)
RESOURCES:https://docs.oracle.com/javaee/7/api/javax/json/package-summary.htmlhttps://docs.oracle.com/javaee/7/tutorial/jsonp.htmhttp://www.jcp.org/en/jsr/detail?id=353http://www.jcp.org/en/jsr/detail?id=374https://github.com/google/gsonhttps://github.com/FasterXML/jackson