У меня возникла проблема, когда java читает список массивов из файла чисел или строк YAML и интерпретирует числа как восьмеричные, если у него начальный 0, а не 8-9 цифр.
есть ли способ заставить java читать поле yaml в виде строки?
код:
ArrayList recordrarray = (ArrayList) sect.get("recordnum");
if (recordrarray != null) {
recno = join (recordrarray, " ");
}
также пробовали:
Iterator<String> iter = recordrarray.iterator();
if (iter.hasNext()) recno = " " +String.valueOf(iter.next());
System.out.println(" this recnum:" + recno);
while (iter.hasNext()){
recno += ""+String.valueOf(iter.next()));
System.out.println(" done recnum:" + String.valueOf(iter.next()));
}
вход такой:
061456 изменяется на 25390
061506 изменяется на 25414
061559 -> FINE
Потребовалось некоторое время, чтобы понять, что он делает, и, очевидно, это общая проблема для Java,
идеи?
спасибо
редактировать: используя jvyaml
YAML:
22:
country_code: ' '
description: ''
insection: 1
recordnum:
- 061264
type: misc
загрузка yaml:
import org.jvyaml.YAML;
Map structure = new HashMap();
structure = (Map) YAML.load(new FileReader(structurefn)); // load the structure file