Java 使用JAXB注释将实例变量字符串转换为JSON

Java 使用JAXB注释将实例变量字符串转换为JSON,java,json,jaxb,Java,Json,Jaxb,我有一个带有json格式的字符串实例变量的对象 package json; import javax.xml.bind.annotation.XmlRootElement; @XmlRootElement public class Test { private String json; // Contains a json String {"test": 1} public String getJson() { return json; }

我有一个带有json格式的字符串实例变量的对象

package json;

import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement
public class Test {

    private String json; // Contains a json String {"test": 1}

    public String getJson() {
        return json;
    }
    public void setJson(String json) {
        this.json = json;
    }

}
当我封送此对象时,会得到以下json:

{
   "json" : "{\"test\": 1}"
}
我想要的是:

{
    "json" : {
        "test" : 1
    }
}
有允许这样做的注释吗

这是示例代码:

import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;

import org.eclipse.persistence.jaxb.MarshallerProperties;

public class Main {

  public static void main (String [] args) throws JAXBException {

    JAXBContext context = JAXBContext.newInstance(Test.class);  

    Marshaller m = context.createMarshaller();
    m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);  
    m.setProperty(MarshallerProperties.MEDIA_TYPE, "application/json");
    m.setProperty(MarshallerProperties.JSON_INCLUDE_ROOT, false);


    Test t = new Test();
    t.setJson("{\"test\": 1}");

    m.marshal(t, System.out);  
  }
}

我一直试图在JAXB中找到一些等价的东西,但我找不到。例如,Jackson就为此提供了一个
@JsonRawValue
注释。你可以考虑切换。@ SotiriosDelimanolis感谢这一点,这很好,你能把它作为一个答案,以便我能接受它吗?