/src/main/java/com/alibaba/fastjson/serializer/PrimitiveArraySerializer.java
https://github.com/alibaba/fastjson · Java · 136 lines · 102 code · 16 blank · 18 comment · 31 complexity · cec19d8d394614bd19b69193505f8a8b MD5 · raw file
- /*
- * Copyright 1999-2018 Alibaba Group.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
- package com.alibaba.fastjson.serializer;
-
- import java.io.IOException;
- import java.lang.reflect.Type;
-
- /**
- * @author wenshao[szujobs@hotmail.com]
- */
- public class PrimitiveArraySerializer implements ObjectSerializer {
-
- public static PrimitiveArraySerializer instance = new PrimitiveArraySerializer();
-
- public final void write(JSONSerializer serializer, Object object, Object fieldName, Type fieldType, int features) throws IOException {
- SerializeWriter out = serializer.out;
-
- if (object == null) {
- out.writeNull(SerializerFeature.WriteNullListAsEmpty);
- return;
- }
-
- if (object instanceof int[]) {
- int[] array = (int[]) object;
- out.write('[');
- for (int i = 0; i < array.length; ++i) {
- if (i != 0) {
- out.write(',');
- }
- out.writeInt(array[i]);
- }
- out.write(']');
- return;
- }
-
- if (object instanceof short[]) {
- short[] array = (short[]) object;
- out.write('[');
- for (int i = 0; i < array.length; ++i) {
- if (i != 0) {
- out.write(',');
- }
- out.writeInt(array[i]);
- }
- out.write(']');
- return;
- }
-
- if (object instanceof long[]) {
- long[] array = (long[]) object;
-
- out.write('[');
- for (int i = 0; i < array.length; ++i) {
- if (i != 0) {
- out.write(',');
- }
- out.writeLong(array[i]);
- }
- out.write(']');
- return;
- }
-
- if (object instanceof boolean[]) {
- boolean[] array = (boolean[]) object;
- out.write('[');
- for (int i = 0; i < array.length; ++i) {
- if (i != 0) {
- out.write(',');
- }
- out.write(array[i]);
- }
- out.write(']');
- return;
- }
-
- if (object instanceof float[]) {
- float[] array = (float[]) object;
- out.write('[');
- for (int i = 0; i < array.length; ++i) {
- if (i != 0) {
- out.write(',');
- }
-
- float item = array[i];
- if (Float.isNaN(item)) {
- out.writeNull();
- } else {
- out.append(Float.toString(item));
- }
- }
- out.write(']');
- return;
- }
-
- if (object instanceof double[]) {
- double[] array = (double[]) object;
- out.write('[');
- for (int i = 0; i < array.length; ++i) {
- if (i != 0) {
- out.write(',');
- }
-
- double item = array[i];
- if (Double.isNaN(item)) {
- out.writeNull();
- } else {
- out.append(Double.toString(item));
- }
- }
- out.write(']');
- return;
- }
-
- if (object instanceof byte[]) {
- byte[] array = (byte[]) object;
- out.writeByteArray(array);
- return;
- }
-
- char[] chars = (char[]) object;
- out.writeString(chars);
- }
- }