我需要在新行中返回每个元素的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
答案 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]);
}
不确定这是否是您所要求的,但这是您的书面问题的答案