Я пытаюсь преобразовать JSON
в XML
в промежуточном инструменте. Я использую Jackson
библиотеки для этого преобразования. Проблема заключается в том, что для десятичных полей (длиной более 8
) в JSON
соответствующее значение XML
преобразуется в научную запись. Например, 8765431002.13
преобразуется в 8.76543100213E8
.
Я могу преобразовать научную нотацию в обычный десятичный формат, если знаю название поля. Но в моем случае приложение промежуточного программного обеспечения не будет знать о поле, являющемся десятичным.
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.dataformat.xml.XmlMapper;
public class JSONDataformat {
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
//String jsonString = "{\"Field1\":18629920.68,\"Field3\":\"test\", \"Field2\":\"null\"}";
ObjectMapper objectMapper = new ObjectMapper();
ObjectMapper xmlMapper = new XmlMapper();
JsonNode tree = objectMapper.readTree(jsonString);
String jsonAsXml = xmlMapper.writer().writeValueAsString(tree);
System.out.println(jsonAsXml);
}
catch(Exception e) {e.printStackTrace(); }
}
}
выход
<ObjectNode xmlns=""><Field1>1.862992068E7</Field1><Field3>test</Field3><Field2/></ObjectNode>
Я ожидал получить значение <Field1>
как 18629920.68
в приведенном выше коде.