java - 字符串数组的问题

标签 java arrays json

以下代码给出测试结果:[someproduct, someproduct, someproduct, someproduct, someproduct]。我期望结果为 ["someproduct", "someproduct", "someproduct", "someproduct", "someproduct"] 以便我将字符串数组推送到 json 响应中

String[] Id = new String[5];
for (int i = 0; i < 5; i++) {
    Id[i] ="someproduct";
}
System.out.println("test:"+Arrays.toString(Id));
writer.key("product").value(Arrays.toString(Id));

当我尝试访问像 response.product[0] 这样的 jsonresponse 时,我只得到第一个字符“[”。我想获取数组的第一项(某个产品)。

请帮我解决。

最佳答案

问题是您使用的方法不充分。 一种方法是使用另一种类型的数组(例如 ArrayList),然后覆盖其 toString 方法。

这是一个例子:

 public static void main(String... args) throws Exception{
    ArrayList<String> array=new ArrayList<String>(){

        /**
         * 
         */
        private static final long serialVersionUID = 1L;

        @Override
        public String toString(){
            StringBuilder sb = new StringBuilder();
            sb.append("[");
            boolean isFirst=true;
            for(String s : this){
                if(!isFirst){
                    sb.append(",");
                }
                isFirst=false;
                sb.append("\""+s+"\"");
            }
            sb.append("]");
            return sb.toString();
        }
    };


    for (int i = 0; i < 5; i++) {
      array.add("someproduct");
    }
    System.out.println(array);


}

输出:

["someproduct","someproduct","someproduct","someproduct","someproduct"]

注意:

有很多方法可以使该代码可重用,例如

  1. 创建一个扩展的新类ArrayListWithNicePrint ArrayList
  2. 创建一个静态方法,它返回一个带有 pretty-print 的新ArrayList(我真的更喜欢这个)

编辑:(基于评论):

public class ArrayListWithNicePrint<E> extends ArrayList{


        @Override
        public String toString(){
            StringBuilder sb = new StringBuilder();
            sb.append("[");
            boolean isFirst=true;
            for(Object s : this){
                if(!isFirst){
                    sb.append(",");
                }
                isFirst=false;
                sb.append("\""+s.toString()+"\"");
            }
            sb.append("]");
            return sb.toString();
        }

    }

测试:

public class Testing{
   public static void main(String... args){

   ArrayListWithNicePrint<String> list= new ArrayListWithNicePrint<String>();
   list.add("hi");
   list.add("hello");
   System.out.println(list);
   }
}

关于java - 字符串数组的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30373804/

相关文章:

java - 从预先存在的应用程序创建 Web 应用程序

javascript - 从末尾索引数组

java - 我正在从手机获取联系人详细信息,当我尝试转换为 json 格式时,应用程序崩溃了

java - 最新 FLP api 客户端构建期间的 Android AR Core 异常。回归传统

java - 如何从扫描仪读取字符串,并将每个字母转换为不同的值?

javascript - 在javascript中将对象添加到复杂的json中

c - 指向 int 数组的指针和指向 int 的指针之间的语法差异

c# - 通过 WebClient 请求 JSON 返回 URL 抛出异常

java - Jackson/Gson 的良好 REST 设计

java - 如何将Jsoup中的Element保存到数据库