24 lines
757 B
Java
24 lines
757 B
Java
package io.gitlab.jfronny.muscript.gson.impl.typed;
|
|
|
|
import io.gitlab.jfronny.gson.TypeAdapter;
|
|
import io.gitlab.jfronny.gson.stream.JsonReader;
|
|
import io.gitlab.jfronny.gson.stream.JsonWriter;
|
|
import io.gitlab.jfronny.muscript.data.dynamic.DNumber;
|
|
import io.gitlab.jfronny.muscript.data.dynamic.additional.DFinal;
|
|
|
|
import java.io.IOException;
|
|
|
|
public class DNumberSerializer extends TypeAdapter<DNumber> {
|
|
@Override
|
|
public void write(JsonWriter w, DNumber dynamic) throws IOException {
|
|
double d = dynamic.getValue();
|
|
if (d % 1.0 != 0 || d > Long.MAX_VALUE) w.value(d);
|
|
else w.value((long) d);
|
|
}
|
|
|
|
@Override
|
|
public DNumber read(JsonReader r) throws IOException {
|
|
return DFinal.of(r.nextDouble());
|
|
}
|
|
}
|