Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将Xml转换为JSON的方法(包括示例)_Java_Xml_Json_Xslt - Fatal编程技术网

Java 将Xml转换为JSON的方法(包括示例)

Java 将Xml转换为JSON的方法(包括示例),java,xml,json,xslt,Java,Xml,Json,Xslt,后端系统接受xml格式的请求并返回复杂的xml响应。 请求Xml和响应Xml是通用的,具有多个层次。Xml元素没有与UI字段的一对一映射。Xml包含大量元数据(id等)和层。这就是我提出模型Xml的原因,它是平面的,并且具有与UI字段的一对一映射。我有以下方法在UI上呈现数据: UI->JSON->ModelXml->Request Xml/如果是响应Xml,则反向流动 A.使用一些api进行JSON->ModelXML转换 BModelXML->RequestXml使用XSLT UI->JSO

后端系统接受xml格式的请求并返回复杂的xml响应。
请求Xml和响应Xml是通用的,具有多个层次。Xml元素没有与UI字段的一对一映射。Xml包含大量元数据(id等)和层。
这就是我提出模型Xml的原因,它是平面的,并且具有与UI字段的一对一映射。
我有以下方法在UI上呈现数据:

  • UI->JSON->ModelXml->Request Xml/如果是响应Xml,则反向流动
    A.使用一些api进行JSON->ModelXML转换
    BModelXML->RequestXml使用XSLT

  • UI->JSON->RequestXML/如果是响应XML,则反向流动
    这将是一对一的映射,每当UI发生变化时,都需要有人负责JSON->RequestXML转换
  • 注意:UI布局是可配置的。这里我要说的是200多个数据输入表单

    那么,在减少开发时间、性能和可维护性方面,哪种方法更好呢?

    可以用XSLT实现JSON XML吗? 例如:

    **Xml Structure**
    <RequestXml>
     <Paramateres>
       <Metadata></Metadata>
     </Paramateres>
     <Party>
      <State></State>
      <Person>
        <FirstName></FirstName>
        <LastName></LastName>
      </Person>
      <Address type="Residence">
        <Line1>28 North Main Street</Line1>
        <City>Alberta</City>
      </Address>
      <SSN></SSN>
     </Party>
    </RequestXml>
    

    是的,您可以使用XSLT在JSON和XML之间进行转换。有很多资源可以做到这一点。你可能想看看的是。它允许您根据许多不同的约定执行转换。听起来你的上下文是一个使用得很广的UI(你提到200 +数据输入表单),所以这种转换是否足够适合你的情况是你需要考虑的。

    < P>你是否已经看过使用JSON库()?您可以使用它直接在格式良好的XML和JSON之间来回转换。

    (由于rep的原因,我不得不将这篇文章分成两篇,因此请参见下面的评论以继续)

    你看了吗?我检查过了。java执行从XML到JSON的一对一映射,反之亦然。或者,如果您想使用pojo支持的对象,您可以从JSON到对象、对象到XML、XML到对象和对象到JSON对对象进行序列化和反序列化。如果我必须接受JSON或XML,处理数据,然后向UI或文件发送不同的结果类型,通常会采用这种方法。通常,我使用ObjectMapper()处理JSON,使用XStream()处理XML。请看我对这个问题的评论。是的,我已经检查了这些选项。我很抱歉。我确实错过了你的评论。这真的取决于你哪一个更适合你的需要。在我工作过的大多数项目中,我选择的两个选项更易于维护。对于性能而言,这实际上取决于如何处理转换、XML消息的大小等。。。对于更大的文件,XSLT对我来说比转换不同格式更快很多次;然而,性能上的差异(在大多数情况下我可以马上想到)并没有超过易维护性。
    "ClientInformation":{"FirstName":"Name", "LastName":"Yadav","Line1":"28 North Main Street","City":"Alberta","State":"", "SSN":""}