Java xstream как убрать два оборачивающих тэга?

Для удаления оборачивающих тегов при использовании Java XStream можно воспользоваться аннотацией @XStreamOmitField.

Для начала, убедитесь, что в вашем классе-модели, который вы сериализуете/десериализуете с помощью XStream, присутствуют все необходимые поля и методы. Допустим, у вас есть класс Person, который вы хотите сериализовать без оборачивающих тегов:

import com.thoughtworks.xstream.annotations.*;

@XStreamAlias("person")
public class Person {

    @XStreamOmitField
    private String name;

    private int age;

    // конструкторы, геттеры, сеттеры и другие методы
}

В данном примере используется аннотация @XStreamAlias("person") для указания имени корневого тега (в данном случае - "person"). Аннотация @XStreamOmitField используется для указания на то, что поле name не должно быть сериализовано.

Теперь, при вызове методов toXML или fromXML объекта XStream, экземпляр класса Person будет сериализован или десериализован без оборачивающих тегов. Например:

import com.thoughtworks.xstream.XStream;

public class Main {

    public static void main(String[] args) {
        XStream xstream = new XStream();
        xstream.processAnnotations(Person.class);

        Person person = new Person();
        person.setName("John");
        person.setAge(25);

        String xml = xstream.toXML(person);
        System.out.println(xml);

        Person deserializedPerson = (Person) xstream.fromXML(xml);
        System.out.println(deserializedPerson.getName());
        System.out.println(deserializedPerson.getAge());
    }
}

В результате выполнения данного кода будет выведено:

<person>
  <age>25</age>
</person>
null
25

Таким образом, вы можете убрать оборачивающие теги при сериализации и десериализации объектов с помощью Java XStream, используя аннотацию @XStreamOmitField.