diff --git a/src/main/java/net/onrc/onos/core/topology/Device.java b/src/main/java/net/onrc/onos/core/topology/Device.java
index 8da4e36..4d0c266 100644
--- a/src/main/java/net/onrc/onos/core/topology/Device.java
+++ b/src/main/java/net/onrc/onos/core/topology/Device.java
@@ -1,6 +1,8 @@
 package net.onrc.onos.core.topology;
 
 import net.floodlightcontroller.util.MACAddress;
+import net.onrc.onos.core.topology.serializers.DeviceSerializer;
+import org.codehaus.jackson.map.annotate.JsonSerialize;
 
 /**
  * Interface of Device Object exposed to the "NB" read-only Topology.
@@ -10,6 +12,7 @@
  * Everything returned by these interfaces must be either Unmodifiable view,
  * immutable object, or a copy of the original "SB" In-memory Topology.
  */
+@JsonSerialize(using = DeviceSerializer.class)
 public interface Device {
     /**
      * Get the device MAC address.
diff --git a/src/main/java/net/onrc/onos/core/topology/Link.java b/src/main/java/net/onrc/onos/core/topology/Link.java
index 9734704..7782188 100644
--- a/src/main/java/net/onrc/onos/core/topology/Link.java
+++ b/src/main/java/net/onrc/onos/core/topology/Link.java
@@ -1,10 +1,14 @@
 package net.onrc.onos.core.topology;
 
+import net.onrc.onos.core.topology.serializers.LinkSerializer;
+import org.codehaus.jackson.map.annotate.JsonSerialize;
+
 // TODO Everything returned by these interfaces must be either Unmodifiable view,
 // immutable object, or a copy of the original "SB" In-memory Topology.
 /**
  * Interface of Link object in the topology.
  */
+@JsonSerialize(using = LinkSerializer.class)
 public interface Link {
     /**
      * Gets the source switch for the link.
diff --git a/src/main/java/net/onrc/onos/core/topology/Port.java b/src/main/java/net/onrc/onos/core/topology/Port.java
index 9a0c06e..a5f9a20 100644
--- a/src/main/java/net/onrc/onos/core/topology/Port.java
+++ b/src/main/java/net/onrc/onos/core/topology/Port.java
@@ -1,6 +1,8 @@
 package net.onrc.onos.core.topology;
 
+import net.onrc.onos.core.topology.serializers.PortSerializer;
 import net.onrc.onos.core.util.SwitchPort;
+import org.codehaus.jackson.map.annotate.JsonSerialize;
 
 //TODO Everything returned by these interfaces must be either Unmodifiable view,
 //immutable object, or a copy of the original "SB" In-memory Topology.
@@ -8,6 +10,7 @@
 /**
  * Interface of Port object in the topology.
  */
+@JsonSerialize(using = PortSerializer.class)
 public interface Port {
 
     /**
diff --git a/src/main/java/net/onrc/onos/core/topology/Switch.java b/src/main/java/net/onrc/onos/core/topology/Switch.java
index 32dedd8..365b00d 100644
--- a/src/main/java/net/onrc/onos/core/topology/Switch.java
+++ b/src/main/java/net/onrc/onos/core/topology/Switch.java
@@ -1,12 +1,15 @@
 package net.onrc.onos.core.topology;
 
 import java.util.Collection;
+import net.onrc.onos.core.topology.serializers.SwitchSerializer;
+import org.codehaus.jackson.map.annotate.JsonSerialize;
 
 // TOOD Everything returned by these interfaces must be either Unmodifiable view,
 // immutable object, or a copy of the original "SB" In-memory Topology.
 /**
  * Interface of Switch object in the topology.
  */
+@JsonSerialize(using = SwitchSerializer.class)
 public interface Switch {
 
     /**
