के साथ युगल का जेसन एन्कोडिंग मैं डबल मानों के सरणी के साथ एक जटिल मानचित्र संरचना को एन्कोड कर रहा हूं। उच्च परिशुद्धता महत्वपूर्ण नहीं है और आउटपुट आकार है, इसलिए मैं एक उपलब्ध दशमलव फ़ार्मेट का उपयोग करके डबल मानों को क्रमबद्ध करने के लिए JSON टूल (इस मामले में जैक्सन) प्राप्त करने का प्रयास कर रहा हूं।जैक्सन - नियंत्रित परिशुद्धता
निम्नलिखित मेरे सबसे अच्छे शॉट है, लेकिन इस में विफल रहता है के रूप में serializer वस्तु नक्शाकार द्वारा उठाया नहीं है सरणी एन्कोड करने के लिए:
class MyTest
{
public class MyDoubleSerializer extends JsonSerializer<double[]>
{
public void serialize(double[] value, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonProcessingException
{
for (double d : value)
{
jgen.writeStartArray();
jgen.writeRaw(df.format(d));
jgen.writeEndArray();
}
}
}
@Test
public void test1() throws Exception
{
ObjectMapper mapper = new ObjectMapper();
SimpleModule module = new SimpleModule("MyModule", new Version(0, 1, 0, "alpha"));
module.addSerializer(double[].class, new MyDoubleSerializer());
mapper.registerModule(module);
Map<String, Object> data = new HashMap<String, Object>();
double[] doubleList = { 1.1111111111D, (double) (System.currentTimeMillis()) };
data.put("test", doubleList);
System.out.print(mapper.writeValueAsString(data));
}
}
उत्पादन होता है:
{ "परीक्षण" [1.1111111111,1.315143204964E12}
क्या मैं के लिए देख रहा था:
{ "परीक्षण" [1.32E12, 1.11E0]}
कोई भी विचार?
इसके अलावा, मुझे स्ट्रिंग उत्पन्न करना पसंद नहीं है और लिखना कच्चा है - क्या मैं ऐसा करने के लिए स्ट्रिंगबफर को दशमलव फोर्मेट में खिला सकता हूं?
धन्यवाद