【问题标题】:Convert List<Class> into String JAVAI将 List<Class> 转换为字符串 JAVA
【发布时间】:2018-02-19 11:18:34
【问题描述】:

我有一个值列表,即

List<Test> myList;

public class Test {
    String type;
    String value;
}

当我调试时列表值看起来像

Test(type=6140, value=2017)
Test(type=6144, value=2017)

我想把它转成字符串,

所以我尝试了喜欢

List<Test> myList;

StringBuilder abc = new StringBuilder();
for(Object a: myList){
    abc.append(String.valueOf(a));
}

但结果会像

Test(type=6140, value=2017)Test(type=6144, value=2017)

但我想将值转换为

[{"type":6140,"value":"2017"},{"type":6144,"value":"2017"}]

【问题讨论】:

  • 你想要一个 JSON 数组。使用杰克逊之类的库,会更简单
  • 你只想要这个表示进行调试吗?
  • @daniu 也不要存储

标签: java string list


【解决方案1】:

尝试使用 GSON 包含库后,此任务可能很简单 Gson gson = 新 Gson(); 字符串 jsonString = gson.toJson(myList)

【讨论】:

    【解决方案2】:

    您可以覆盖“Test”类中​​的 ToString() 函数或使用 JSON 序列化对象。 JSON 会为您提供与您想要的不同但类似的输出。 所以重写函数 ToString() 会更符合你的需求。

    【讨论】:

      【解决方案3】:

      如果您在 Test 类中覆盖 toString 方法,那么输出将符合您的预期。

      @Override
      public String toString() {
          return "{" +
                  "type=" + type +
                  ", value=" + value +
                  '}';
      }
      

      输出:

      [{"type":6140,"value":"2017"},{"type":6144,"value":"2017"}]


      【讨论】:

        猜你喜欢
        • 2019-06-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-10-17
        • 1970-01-01
        • 1970-01-01
        • 2021-08-05
        相关资源
        最近更新 更多