Examples for the first version of the article
This commit is contained in:
parent
e381aac6e8
commit
57dcc48b92
|
@ -49,6 +49,66 @@
|
|||
<artifactId>commons-lang3</artifactId>
|
||||
<version>3.9</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.fasterxml.jackson.core</groupId>
|
||||
<artifactId>jackson-annotations</artifactId>
|
||||
<version>2.11.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.fasterxml.jackson.core</groupId>
|
||||
<artifactId>jackson-databind</artifactId>
|
||||
<version>2.11.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.io-informatics.oss</groupId>
|
||||
<artifactId>jackson-jsonld</artifactId>
|
||||
<version>0.1.1</version>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<artifactId>jackson-databind</artifactId>
|
||||
<groupId>com.fasterxml.jackson.core</groupId>
|
||||
</exclusion>
|
||||
<exclusion>
|
||||
<artifactId>jackson-annotations</artifactId>
|
||||
<groupId>com.fasterxml.jackson.core</groupId>
|
||||
</exclusion>
|
||||
<exclusion>
|
||||
<artifactId>jackson-core</artifactId>
|
||||
<groupId>com.fasterxml.jackson.core</groupId>
|
||||
</exclusion>
|
||||
<exclusion>
|
||||
<artifactId>jsonld-java</artifactId>
|
||||
<groupId>com.github.jsonld-java</groupId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>de.escalon.hypermedia</groupId>
|
||||
<artifactId>hydra-jsonld</artifactId>
|
||||
<version>0.4.2</version>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<artifactId>jackson-databind</artifactId>
|
||||
<groupId>com.fasterxml.jackson.core</groupId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.github.jsonld-java</groupId>
|
||||
<artifactId>jsonld-java</artifactId>
|
||||
<version>0.13.0</version>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<artifactId>jackson-core</artifactId>
|
||||
<groupId>com.fasterxml.jackson.core</groupId>
|
||||
</exclusion>
|
||||
<exclusion>
|
||||
<artifactId>jackson-databind</artifactId>
|
||||
<groupId>com.fasterxml.jackson.core</groupId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
<properties>
|
||||
<jsoniter.version>0.9.23</jsoniter.version>
|
||||
|
|
|
@ -0,0 +1,40 @@
|
|||
package com.baeldung.jsonld.deserialization.jsonldjava.jackson;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.github.jsonldjava.core.JsonLdOptions;
|
||||
import com.github.jsonldjava.core.JsonLdProcessor;
|
||||
import com.github.jsonldjava.utils.JsonUtils;
|
||||
|
||||
public class JacksonDeserializationExample {
|
||||
public static void main(String[] args) throws IOException {
|
||||
String exampleJsonld ="{" +
|
||||
" \"@context\": {" +
|
||||
" \"@vocab\": \"http://schema.org/\"," +
|
||||
" \"knows\": {" +
|
||||
" \"@type\": \"@id\"" +
|
||||
" }" +
|
||||
" }," +
|
||||
" \"@type\": \"Person\"," +
|
||||
" \"@id\": \"http://example.com/person/1234\"," +
|
||||
" \"name\": \"Example Name\"," +
|
||||
" \"knows\": \"http://example.com/person/2345\"" +
|
||||
"}";
|
||||
|
||||
Object jsonObject = JsonUtils.fromString(exampleJsonld);
|
||||
Object compact = JsonLdProcessor.compact(jsonObject, new HashMap(), new JsonLdOptions());
|
||||
String compactContent = JsonUtils.toString(compact);
|
||||
|
||||
System.out.println(JsonUtils.toPrettyString(compact));
|
||||
|
||||
ObjectMapper objectMapper = new ObjectMapper();
|
||||
JacksonExamplePerson person = objectMapper.readValue(compactContent, JacksonExamplePerson.class);
|
||||
|
||||
System.out.println(person.id);
|
||||
System.out.println(person.name);
|
||||
System.out.println(person.knows.id);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
package com.baeldung.jsonld.deserialization.jsonldjava.jackson;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
public class JacksonExamplePerson {
|
||||
@JsonProperty("@id")
|
||||
public String id;
|
||||
@JsonProperty("http://schema.org/name")
|
||||
public String name;
|
||||
@JsonProperty("http://schema.org/knows")
|
||||
public Link knows;
|
||||
|
||||
public class Link {
|
||||
@JsonProperty("@id")
|
||||
public String id;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,15 @@
|
|||
package com.baeldung.jsonld.serialization.hydrajsonld;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
|
||||
import de.escalon.hypermedia.hydra.mapping.Expose;
|
||||
import de.escalon.hypermedia.hydra.mapping.Vocab;
|
||||
|
||||
@Vocab("http://example.com/vocab/")
|
||||
@Expose("person")
|
||||
public class HydraJsonldExamplePerson {
|
||||
@JsonProperty("@id")
|
||||
public String id;
|
||||
@Expose("fullName")
|
||||
public String name;
|
||||
}
|
|
@ -0,0 +1,52 @@
|
|||
package com.baeldung.jsonld.serialization.hydrajsonld;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import com.fasterxml.jackson.databind.BeanDescription;
|
||||
import com.fasterxml.jackson.databind.JsonSerializer;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.fasterxml.jackson.databind.SerializationConfig;
|
||||
import com.fasterxml.jackson.databind.module.SimpleModule;
|
||||
import com.fasterxml.jackson.databind.ser.BeanSerializerModifier;
|
||||
import com.fasterxml.jackson.databind.ser.std.BeanSerializerBase;
|
||||
|
||||
import de.escalon.hypermedia.hydra.serialize.JacksonHydraSerializer;
|
||||
|
||||
public class HydraJsonldSerializationExample {
|
||||
public static void main(String[] args) throws IOException {
|
||||
ObjectMapper mapper = new ObjectMapper();
|
||||
mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
|
||||
mapper.registerModule(getJacksonHydraSerializerModule());
|
||||
|
||||
HydraJsonldExamplePerson person = new HydraJsonldExamplePerson();
|
||||
person.id = "http://example.com/person/1234";
|
||||
person.name = "Example Name";
|
||||
|
||||
System.out.println(mapper.writerWithDefaultPrettyPrinter()
|
||||
.writeValueAsString(person));
|
||||
}
|
||||
|
||||
public static SimpleModule getJacksonHydraSerializerModule() {
|
||||
return new SimpleModule() {
|
||||
|
||||
@Override
|
||||
public void setupModule(SetupContext context) {
|
||||
super.setupModule(context);
|
||||
|
||||
context.addBeanSerializerModifier(new BeanSerializerModifier() {
|
||||
|
||||
@Override
|
||||
public JsonSerializer<?> modifySerializer(SerializationConfig config, BeanDescription beanDesc, JsonSerializer<?> serializer) {
|
||||
|
||||
if (serializer instanceof BeanSerializerBase) {
|
||||
return new JacksonHydraSerializer((BeanSerializerBase) serializer);
|
||||
} else {
|
||||
return serializer;
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
|
@ -0,0 +1,25 @@
|
|||
package com.baeldung.jsonld.serialization.jacksonjsonld;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
|
||||
import ioinformarics.oss.jackson.module.jsonld.HydraCollection;
|
||||
import ioinformarics.oss.jackson.module.jsonld.JsonldGraph;
|
||||
import ioinformarics.oss.jackson.module.jsonld.JsonldModule;
|
||||
import ioinformarics.oss.jackson.module.jsonld.JsonldResource;
|
||||
|
||||
public class JacksonJsonLdSerializationExample {
|
||||
public static void main(String[] args) throws IOException {
|
||||
ObjectMapper objectMapper = new ObjectMapper();
|
||||
objectMapper.registerModule(new JsonldModule());
|
||||
|
||||
JacksonJsonldExamplePerson person = new JacksonJsonldExamplePerson();
|
||||
|
||||
JsonldResource jsonldResource = JsonldResource.Builder.create()
|
||||
.build(person);
|
||||
|
||||
System.out.println(objectMapper.writerWithDefaultPrettyPrinter()
|
||||
.writeValueAsString(jsonldResource));
|
||||
}
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
package com.baeldung.jsonld.serialization.jacksonjsonld;
|
||||
|
||||
import ioinformarics.oss.jackson.module.jsonld.annotation.JsonldId;
|
||||
import ioinformarics.oss.jackson.module.jsonld.annotation.JsonldLink;
|
||||
import ioinformarics.oss.jackson.module.jsonld.annotation.JsonldNamespace;
|
||||
import ioinformarics.oss.jackson.module.jsonld.annotation.JsonldProperty;
|
||||
import ioinformarics.oss.jackson.module.jsonld.annotation.JsonldType;
|
||||
|
||||
@JsonldNamespace(name = "s", uri = "http://schema.org/")
|
||||
@JsonldLink(rel = "s:knows", name = "knows", href = "http://example.com/person/2345")
|
||||
@JsonldType("s:Person")
|
||||
class JacksonJsonldExamplePerson {
|
||||
@JsonldId
|
||||
public String id = "http://example.com/person/1234";
|
||||
@JsonldProperty("s:name")
|
||||
public String name = "Example Name";
|
||||
}
|
Loading…
Reference in New Issue