相关疑难解决方法(0)

使用JAXB进行部分解组

我想部分解组大XML.

XML具有以下结构:

<Records>
    <Contract>
        ...
    </Contract>
    <Contract>
        ...
    </Contract>
    ...
    <Contract>
        ...
    </Contract>
    <Contract>
        ...
    </Contract>
</Records>
Run Code Online (Sandbox Code Playgroud)

使用XJC生成结果类:

- Records
    |- Contract
Run Code Online (Sandbox Code Playgroud)

如果我按照这些(来自jaxb-ri的样本),我得到错误:

Exception in thread "main" javax.xml.bind.UnmarshalException: unexpected element (uri:"http://somedomain.com", local:"Contract"). Expected elements are <{http://somedomain.com}Records>
Run Code Online (Sandbox Code Playgroud)

如果我使用:

<jaxb:globalBindings localScoping="toplevel"/>
Run Code Online (Sandbox Code Playgroud)

我收到错误:

org.xml.sax.SAXParseException: A class/interface with the same name "com.my.package.Text" is already in use. Use a class customization to resolve this conflict.
Run Code Online (Sandbox Code Playgroud)

但我需要改变很多课程.这不是解决方案.

xml binding jaxb xjc

6
推荐指数
1
解决办法
6149
查看次数

如何使用jaxb注释使用Jersey将json解组为java bean时使用一些间接

我正在尝试解散一些收到的json(来自Jira restful web service).

问题是:"问题"具有"摘要"属性和字段列表.

摘要不作为接收的json中的属性存在,而是作为"fields"属性的值.我坚持要对这个结构进行解组:

@XmlRootElement
class Issue {
   String summary;
   List<Field> fields;
   // getters/setters and lots of other fields
}
Run Code Online (Sandbox Code Playgroud)

收到JSON:

{
    "expand":"html",
    "self":"https://example.com/jira/rest/api/latest/issue/XYZ-1234",
    "key":"XYZ-1234",
    "fields":
    {
        "summary":
        {
            "name":"summary",
            "type":"java.lang.String",
            "value":"test 1234"
        },
        "customfield_10080":
        {
            "name":"Testeur",
            "type":"com.atlassian.jira.plugin.system.customfieldtypes:userpicker"
        },
        "status":
        {
            "name":"status",
            "type":"com.atlassian.jira.issue.status.Status",
            "value":
            {
                "self":"https://example.com/jira/rest/api/latest/status/5",
                "name":"Resolved"
            }
        },
        ...            
    },
    "transitions":"https://example.com/jira/rest/api/latest/issue/XYZ-1234/transitions"
}
Run Code Online (Sandbox Code Playgroud)

我不想使用Jira自己的客户端(我的应用程序中不需要太多依赖项).

编辑:我问我的问题另一种方法,试图说清楚:如何使用jax-rs将bean结构映射到不同的模式

java rest json jersey unmarshalling

5
推荐指数
1
解决办法
4872
查看次数

标签 统计

binding ×1

java ×1

jaxb ×1

jersey ×1

json ×1

rest ×1

unmarshalling ×1

xjc ×1

xml ×1