YAML являетсяАнализировать YAML с космическим именем в JAVA
innings:
- 1st innings:
team: Australia
runs:500
- 2nd innings:
team: Australia
runs:501
JAVA код:
import java.io.File;
import java.util.List;
import org.apache.commons.lang3.builder.ReflectionToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.dataformat.yaml.YAMLFactory;
/**
* Hello world!
*
*/
public class App {
public static void main(String[] args) throws Exception {
ObjectMapper mapper = new ObjectMapper(new YAMLFactory());
try {
Innings user = mapper.readValue(new File("a.txt"), Innings.class);
System.out.println(ReflectionToStringBuilder.toString(user,ToStringStyle.MULTI_LINE_STYLE));
} catch (Exception e) {
e.printStackTrace();
}
}
}
class Innings {
public List<Inning> innings;
}
class Inning{
public int runs;
public String team;
}
ошибок трассировки: com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Непризнанный поле «первый innings "(класс Inning), не обозначенный как невежественный (2 известных свойства:," run "," team "]) at [Источник: a.txt; строка: 3, столбец: 7] (через ссылочную цепочку: Innings ["innings"] -> Inning ["1st innings"])
Примечание: Пожалуйста, предложите другой парсер, если jackson здесь не в состоянии помочь.
Просто имейте в виду, что разработчики java чувствуют большую боль, когда видят, что вы сначала называете классы строчными буквами. – Scadge
Или публичные нефинансовые поля в не-частных классах. – Qix
да, я понимаю, на самом деле у меня был тот же класс с тем же именем «Inning», чтобы временно создать этот класс, я сделал еще один класс «inning» – Nitsshukla