diff --git a/src/main/java/net/floodlightcontroller/core/IOFSwitch.java b/src/main/java/net/floodlightcontroller/core/IOFSwitch.java
index 530da78..40aa530 100644
--- a/src/main/java/net/floodlightcontroller/core/IOFSwitch.java
+++ b/src/main/java/net/floodlightcontroller/core/IOFSwitch.java
@@ -26,11 +26,13 @@
 import java.util.concurrent.Future;
 
 import net.floodlightcontroller.core.IFloodlightProviderService.Role;
+import net.floodlightcontroller.core.web.serializers.IOFSwitchSerializer;
 import net.floodlightcontroller.debugcounter.IDebugCounterService;
 import net.floodlightcontroller.debugcounter.IDebugCounterService.CounterException;
 import net.floodlightcontroller.threadpool.IThreadPoolService;
 import net.floodlightcontroller.util.OrderedCollection;
 
+import org.codehaus.jackson.map.annotate.JsonSerialize;
 import org.jboss.netty.channel.Channel;
 import org.projectfloodlight.openflow.protocol.OFActionType;
 import org.projectfloodlight.openflow.protocol.OFCapabilities;
@@ -44,7 +46,7 @@
 import org.projectfloodlight.openflow.protocol.OFVersion;
 import org.projectfloodlight.openflow.types.U64;
 
-
+@JsonSerialize(using = IOFSwitchSerializer.class)
 public interface IOFSwitch {
 
 	/**
diff --git a/src/main/java/net/floodlightcontroller/core/web/serializers/IOFSwitchSerializer.java b/src/main/java/net/floodlightcontroller/core/web/serializers/IOFSwitchSerializer.java
new file mode 100644
index 0000000..e8c9e1a
--- /dev/null
+++ b/src/main/java/net/floodlightcontroller/core/web/serializers/IOFSwitchSerializer.java
@@ -0,0 +1,55 @@
+package net.floodlightcontroller.core.web.serializers;
+
+import java.io.IOException;
+
+import net.floodlightcontroller.core.IOFSwitch;
+
+import org.codehaus.jackson.JsonGenerationException;
+import org.codehaus.jackson.JsonGenerator;
+import org.codehaus.jackson.map.SerializerProvider;
+import org.codehaus.jackson.map.ser.std.SerializerBase;
+import org.projectfloodlight.openflow.protocol.OFDescStatsReply;
+import org.projectfloodlight.openflow.protocol.OFPortDesc;
+
+public class IOFSwitchSerializer extends SerializerBase<IOFSwitch> {
+
+    protected IOFSwitchSerializer() {
+        super(IOFSwitch.class);
+    }
+
+    @Override
+    public void serialize(IOFSwitch sw, JsonGenerator jGen, SerializerProvider sp)
+            throws IOException, JsonGenerationException {
+
+        jGen.writeStartObject();
+        jGen.writeStringField("dpid", sw.getStringId());
+
+        jGen.writeArrayFieldStart("ports");
+        for (OFPortDesc port : sw.getPorts()) {
+            jGen.writeStartObject();
+            jGen.writeNumberField("number", port.getPortNo().getPortNumber());
+            jGen.writeStringField("macAddress", port.getHwAddr().toString());
+            jGen.writeStringField("name", port.getName());
+            jGen.writeEndObject();
+        }
+        jGen.writeEndArray();
+
+        jGen.writeStringField("version", sw.getOFVersion().toString());
+
+        // Description from OFDescStatsReply
+        OFDescStatsReply desc = sw.getSwitchDescription();
+        jGen.writeObjectFieldStart("description");
+        jGen.writeStringField("manufacturer", desc.getMfrDesc());
+        jGen.writeStringField("hardware", desc.getHwDesc());
+        jGen.writeStringField("switch", desc.getSwDesc());
+        jGen.writeStringField("serialNum", desc.getSerialNum());
+        jGen.writeStringField("datapath", desc.getDpDesc());
+        jGen.writeEndObject();
+
+        jGen.writeStringField("connectedSince", sw.getConnectedSince().toString());
+        jGen.writeObjectField("role", sw.getRole());
+
+        jGen.writeEndObject();
+    }
+
+}
