用新行加入json String值

时间:2016-11-18 22:18:27

标签: java arrays json newline

我需要在新行中返回每个元素的json数组。而是它在一行打印。我尝试使用'/ n'和空格,但它不起作用。

String json = null;
//split cookie with delimiter to store in array
String wl[] = wishList.split("~");

//JSON RETURN VALUE
json = "[\"";
for(int i = 0; i < wl.length; ++i) {
    json +=  wl[i];
    //tried but didn't work
    //json.split("\n");
}
json += "\"]";
System.out.println(json);

所以我尝试了for循环但是它不起作用。 我需要这样的

1.abc
2.bcd
3.efg

但是我得到了这个输出

1.abcbcdefg

3 个答案:

答案 0 :(得分:1)

  

我尝试使用'/ n'和空格,但它不起作用。

您应该在JSON字符串中使用"\n"来添加新行而不是"/n",这不是一回事。你应该为正则表达式模式做同样的事情。

第3。行分隔符是'\ n'

  

这意味着也支持'\ r \ n',因为在解析JSON值时会忽略尾随空格&gt;

     

文件中的最后一个字符可能是行分隔符,它将是   处理方式与没有行分隔符一样。

资料来源:http://jsonlines.org/

修改

Json数组使用逗号分隔数组的值,字符串应在引号或双引号之间。但在开始和结束时不需要“\”。
你可以得到这个字符串:

["abc",
"bcd",
"efg"]

使用此代码:

final String STRING_DOUBLE_QUOTE="\"";
String json = null;
// split cookie with delimiter to store in array
String wl[] = wishList.split("~");

// JSON RETURN VALUE
json = "[";
for (int i = 0; i < wl.length; ++i) {
    if (!json.equals("[")) {
      json += ",\n";
    }
    json += STRING_DOUBLE_QUOTE + wl[i] + STRING_DOUBLE_QUOTE;
}
json += "]";

System.out.println(json);

答案 1 :(得分:1)

你要做的事情(如果我做对了)就是在~上拆分一个字符串并用它创建一个JSON数组(一个单独的行)。

您是否考虑过简单地更换角色?

String json = "[" + wishlist.replace("~", ",\n") + "]"; //Added a , to separated each elements

但如果你想自己做,

String json = "[";
for(int i = 0; i < wl.length; ++i) {
    json +=  wl[i] + ",\n";
}
json += "]";

您需要添加newLine字符,而不是再次拆分它。

当然,正如所指出的那样,这应该使用库设计来完成,但这是对代码的简单修正。

PS:我没有为可修复性编写所需的\"。但这可以很容易地在两种解决方案中添加。

答案 2 :(得分:0)

如果你希望它在多行上,你必须将它保存在多个元素中,即数组。

试试这个:

String wl[] = wishList.split("~");

for(int i = 0; i < wl.length; ++i){
     System.out.println(wl[i]);
}

不确定这是否是您所要求的,但这是您的书面问题的答案