如何迭代和打印记录器 xml 对象响应数据值我们没有该对象的 java 类,它是 XSD 并且没有 toString()

问题描述 投票:0回答:1

尝试迭代并打印记录器中的详细Resp数据

我使用流代码打印 xml 对象架构文件数据,以迭代并打印记录器中的对象数据值,但每次它仅打印哈希代码格式值。非常感谢您对我的询问的回复

示例响应数据:GetObjectDetailsResponse 详细信息响应:

<ns2:GetObjectDetailsResponse xmlns="http://../../schema">
  <header>
    ...
  </header>
  <ns2:addressDetails>
    ...
  </ns2:addressDetails>
  <ns2:accountNumberList>
   <accountNumber>123456789</accountNumber>
   <accountType>Saving</accountType>
  </ns2:accountNumberList>
</ns2:GetObjectDetailsResponse>
public class ExampleData {

  public ObjectDetails processData(GetObjectDetailsResponse detailsResp){
    value = processDetails(elementTag, index, detailsResp.getAccountNumberList());
    detailsResp.getAccountNumberList().stream().forEach(item -> logDebug("print getAccountNumberList value--->" + item);
  }
}
java xml java-8 xsd schema
1个回答
0
投票

如果您只想以可读的日志形式输出 Java 对象,那么您的 Java 类中应该有一个

toString
方法,告诉它如何以
String
形式表示。

例如:

public class MyObject {
  private String value1;
  private String value2;

//...

  @Override
  public String toString() {
    return "MyObject[value1=" + value1 + ";value2=" + value2 + "]";
  }
}

如果您不想实现这个“虚拟”

toString
方法,您仍然可以依赖第3方库(例如来自
apache commons-lang3
ToStringBuilder

然后你就可以用一行代码来读取

ToStringBuilder.reflectionToString(object);
© www.soinside.com 2019 - 2024. All rights reserved.