diff --git a/leshan-server-demo/src/main/java/org/eclipse/leshan/server/demo/servlet/json/JacksonLwM2mNodeDeserializer.java b/leshan-server-demo/src/main/java/org/eclipse/leshan/server/demo/servlet/json/JacksonLwM2mNodeDeserializer.java
index 48204f044c..dbaa8a8e37 100644
--- a/leshan-server-demo/src/main/java/org/eclipse/leshan/server/demo/servlet/json/JacksonLwM2mNodeDeserializer.java
+++ b/leshan-server-demo/src/main/java/org/eclipse/leshan/server/demo/servlet/json/JacksonLwM2mNodeDeserializer.java
@@ -32,6 +32,7 @@
import org.eclipse.leshan.core.node.LwM2mResource;
import org.eclipse.leshan.core.node.LwM2mResourceInstance;
import org.eclipse.leshan.core.node.LwM2mSingleResource;
+import org.eclipse.leshan.core.node.ObjectLink;
import org.eclipse.leshan.core.util.Hex;
import com.fasterxml.jackson.core.JsonParseException;
@@ -181,6 +182,20 @@ private Object deserializeValue(JsonNode val, ResourceModel.Type type) {
raiseUnexpectedType(val, type, "string", val.getNodeType());
}
break;
+ case OBJLNK:
+ if (val.isObject()) {
+ if (val.has("objectId") && val.has("objectInstanceId")) {
+ JsonNode objectId = val.get("objectId");
+ JsonNode objectInstanceId = val.get("objectInstanceId");
+ if (objectId.canConvertToInt() && objectId.canConvertToExactIntegral() && //
+ objectInstanceId.canConvertToInt() && objectInstanceId.canConvertToExactIntegral()) {
+ return new ObjectLink(objectId.asInt(), objectInstanceId.asInt());
+ }
+ }
+ }
+ raiseUnexpectedType(val, type, "object{objectId:integer, objectInstanceId:integer}", val.getNodeType());
+ break;
+
default:
break;
}
diff --git a/leshan-server-demo/webapp/src/components/values/input/ObjLinkValueInput.vue b/leshan-server-demo/webapp/src/components/values/input/ObjLinkValueInput.vue
new file mode 100644
index 0000000000..b940e90bd2
--- /dev/null
+++ b/leshan-server-demo/webapp/src/components/values/input/ObjLinkValueInput.vue
@@ -0,0 +1,94 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/leshan-server-demo/webapp/src/components/values/input/SingleValueInput.vue b/leshan-server-demo/webapp/src/components/values/input/SingleValueInput.vue
index bb75c04463..3afd687898 100644
--- a/leshan-server-demo/webapp/src/components/values/input/SingleValueInput.vue
+++ b/leshan-server-demo/webapp/src/components/values/input/SingleValueInput.vue
@@ -29,6 +29,12 @@
:value="value"
@input="$emit('input', convertValue($event))"
/>
+