diff --git a/src/main/java/net/floodlightcontroller/core/web/serializers/OFPortStatsEntrySerializer.java b/src/main/java/net/floodlightcontroller/core/web/serializers/OFPortStatsEntrySerializer.java
new file mode 100644
index 0000000..c9293f7
--- /dev/null
+++ b/src/main/java/net/floodlightcontroller/core/web/serializers/OFPortStatsEntrySerializer.java
@@ -0,0 +1,42 @@
+package net.floodlightcontroller.core.web.serializers;
+
+import java.io.IOException;
+
+import net.floodlightcontroller.core.web.OFPortStatsEntryMod;
+
+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.OFPortStatsEntry;
+
+public class OFPortStatsEntrySerializer extends SerializerBase<OFPortStatsEntryMod> {
+
+    protected OFPortStatsEntrySerializer() {
+        super(OFPortStatsEntryMod.class);
+    }
+
+    @Override
+    public void serialize(OFPortStatsEntryMod portStatModEntry, JsonGenerator jGen,
+    		SerializerProvider sp) throws IOException, JsonGenerationException {
+
+    	OFPortStatsEntry portStatEntry = portStatModEntry.getPortStatsEntry();
+        jGen.writeStartObject();
+        jGen.writeNumberField("portNumber", portStatEntry.getPortNo().getPortNumber());
+        jGen.writeNumberField("receivePackets", portStatEntry.getRxPackets().getValue());
+        jGen.writeNumberField("transmitPackets", portStatEntry.getTxPackets().getValue());
+        jGen.writeNumberField("receiveBytes", portStatEntry.getRxBytes().getValue());
+        jGen.writeNumberField("transmitBytes", portStatEntry.getTxBytes().getValue());
+        jGen.writeNumberField("receiveDropped", portStatEntry.getRxDropped().getValue());
+        jGen.writeNumberField("transmitDropped", portStatEntry.getTxDropped().getValue());
+        jGen.writeNumberField("receiveErrors", portStatEntry.getRxErrors().getValue());
+        jGen.writeNumberField("transmitErrors", portStatEntry.getTxErrors().getValue());
+        jGen.writeNumberField("receiveFrameErrors", portStatEntry.getRxFrameErr().getValue());
+        jGen.writeNumberField("receiveOverrunErrors", portStatEntry.getRxOverErr().getValue());
+        jGen.writeNumberField("receiveCRCErrors", portStatEntry.getRxCrcErr().getValue());
+        jGen.writeNumberField("collisions", portStatEntry.getCollisions().getValue());
+
+        jGen.writeEndObject();
+    }
+
+}
