以下代码将结果作为测试结果:[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时,我正在获得第一个字符&#39; [&#39;单独。我想要获得数组的第一项(someproduct)。
请帮我解决。
答案 0 :(得分:2)
问题是你使用的方法还不够。
一种方法是使用其他类型的数组(例如ArrayList
),然后Override
使用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"]
注:
有许多方法可以重复使用此代码,例如
ArrayListWithNicePrint
extends
ArrayList
static method
,返回一个带有精美打印的新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);
}
}
答案 1 :(得分:1)
试试这个:
String[] Id = new String[5];
for(int i = 0; i < 5; i++)
{
Id[i] =" **\"someproduct\"** ";
}
希望它能运作
答案 2 :(得分:1)
您可以使用一些JSON转换器库,或者作为quickfix,您可以使用以下内容:
String[] Id = new String[5];
for (int i = 0; i < 5; i++) {
Id[i] ="\"someproduct\"";
}
String arrOutput = Arrays.toString(Id).replaceAll("\\[", "{").replaceAll("\\]", "}");
System.out.println("test:"+ arrOutput);
writer.key("product").value(arrOutput);
根据数组元素的内容,需要更多的解决方法。也许如果您写了更多信息,我们可以帮助您更好。
答案 3 :(得分:1)
为什么不尝试将它放入List中然后使用Gson将整个列表转换为json格式,挖掘一下以获得正确的json格式。对于检索,您可以使用与每个元素关联的标记名称轻松检索。你需要的不是很清楚所以这是我能做的最好的猜测
答案 4 :(得分:1)
尝试使用此代码。它会解决你的问题。
String[] Id = new String[5];
for (int i = 0; i < 5; i++) {
Id[i] ="\"someproduct\"";
}
System.out.println("test:"+Arrays.toString(Id).replace('[', '{').replace(']', '}'));
答案 5 :(得分:0)
当使用JSONWriter对象时,您应该使用内置的array()和endArray()方法,如下所示:
writer.key("product").array();
for (int i=0; i<5; i++) {
writer.object();
writer.key("name").value("someproductname" + i);
writer.endObject();
}
writer.endArray();