Bläddra i källkod

upgrade smart-servlet to 0.6-SNAPSHOT

三刀 1 år sedan
förälder
incheckning
817bc2e9e5

+ 41 - 41
frameworks/Java/smart-socket/src/main/java/org/smartboot/http/JsonUtil.java

@@ -1,8 +1,9 @@
 package org.smartboot.http;
 
+import com.jsoniter.output.JsonStream;
+import com.jsoniter.output.JsonStreamPool;
 import com.jsoniter.spi.JsonException;
-import io.edap.x.json.Eson;
-import io.edap.x.json.JsonWriter;
+import com.jsoniter.spi.Slice;
 import jakarta.servlet.http.HttpServletResponse;
 import org.smartboot.http.server.HttpResponse;
 
@@ -13,57 +14,56 @@ import java.io.IOException;
  * @version V1.0 , 2020/6/16
  */
 public class JsonUtil {
+    //    public static void writeJsonBytes(HttpResponse httpResponse, Object obj) {
+//        JsonWriter writer = Eson.THREAD_WRITER.get();
+//        try {
+//            writer.reset();
+//            Eson.serialize(obj, writer);
+//            httpResponse.setContentLength(writer.size());
+//            writer.toStream(httpResponse.getOutputStream());
+//        } catch (IOException e) {
+//            throw new JsonException(e);
+//        }
+//    }
     public static void writeJsonBytes(HttpResponse httpResponse, Object obj) {
-        JsonWriter writer = Eson.THREAD_WRITER.get();
+        JsonStream stream = JsonStreamPool.borrowJsonStream();
         try {
-            writer.reset();
-            Eson.serialize(obj, writer);
-            httpResponse.setContentLength(writer.size());
-            writer.toStream(httpResponse.getOutputStream());
+            stream.reset(null);
+            stream.writeVal(obj.getClass(), obj);
+            Slice slice = stream.buffer();
+            httpResponse.setContentLength(slice.tail());
+            httpResponse.getOutputStream().write(slice.data(), 0, slice.tail());
         } catch (IOException e) {
             throw new JsonException(e);
+        } finally {
+            JsonStreamPool.returnJsonStream(stream);
         }
     }
 
-//    public static void writeJsonBytes(HttpResponse httpResponse, Object obj) {
-//        JsonStream stream = JsonStreamPool.borrowJsonStream();
-//        try {
-//            stream.reset(null);
-//            stream.writeVal(obj.getClass(), obj);
-//            Slice slice = stream.buffer();
-//            httpResponse.setContentLength(slice.tail());
-//            httpResponse.getOutputStream().write(slice.data(), 0, slice.tail());
-//        } catch (IOException e) {
-//            throw new JsonException(e);
-//        } finally {
-//            JsonStreamPool.returnJsonStream(stream);
-//        }
-//    }
+    public static void writeJsonBytes(HttpServletResponse httpResponse, Object obj) {
+        JsonStream stream = JsonStreamPool.borrowJsonStream();
+        try {
+            stream.reset(null);
+            stream.writeVal(obj.getClass(), obj);
+            Slice slice = stream.buffer();
+            httpResponse.setContentLength(slice.tail());
+            httpResponse.getOutputStream().write(slice.data(), 0, slice.tail());
+        } catch (IOException e) {
+            throw new JsonException(e);
+        } finally {
+            JsonStreamPool.returnJsonStream(stream);
+        }
+    }
 
 //    public static void writeJsonBytes(HttpServletResponse httpResponse, Object obj) {
-//        JsonStream stream = JsonStreamPool.borrowJsonStream();
+//        JsonWriter writer = Eson.THREAD_WRITER.get();
 //        try {
-//            stream.reset(null);
-//            stream.writeVal(obj.getClass(), obj);
-//            Slice slice = stream.buffer();
-//            httpResponse.setContentLength(slice.tail());
-//            httpResponse.getOutputStream().write(slice.data(), 0, slice.tail());
+//            writer.reset();
+//            Eson.serialize(obj, writer);
+//            httpResponse.setContentLength(writer.size());
+//            writer.toStream(httpResponse.getOutputStream());
 //        } catch (IOException e) {
 //            throw new JsonException(e);
-//        } finally {
-//            JsonStreamPool.returnJsonStream(stream);
 //        }
 //    }
-
-    public static void writeJsonBytes(HttpServletResponse httpResponse, Object obj) {
-        JsonWriter writer = Eson.THREAD_WRITER.get();
-        try {
-            writer.reset();
-            Eson.serialize(obj, writer);
-            httpResponse.setContentLength(writer.size());
-            writer.toStream(httpResponse.getOutputStream());
-        } catch (IOException e) {
-            throw new JsonException(e);
-        }
-    }
 }