Преобразовать Java-массив в массив, используя для цикла
Я просмотрел много подобных тем здесь, ни одна не позволила мне решить:
//how to Convert this arraylist to array string using loop
public static void main(String[] args)
{
Main m = new Main();
List<JSONObject> jObj = m.getJsonObject();
for (int i = 0; i < jObj.size(); i++)
{
System.out.println(jObj.get(i));
}
}
Много примеров, которые я видел, все создают список массивов, добавляя в код, у меня уже есть arrayList. Мне просто нужно изменить его как строку массива, а не как arrayList, чтобы я мог правильно отформатировать его как строку JSON с
String responseStr = "{\"data\":" +
Вот весь боб:
package com.queryData.main;
import com.queryData.dao.DataDAO;
import com.queryData.services.JsonServices;
import java.sql.ResultSet;
import java.util.List;
import org.json.JSONObject;
public class Main {
ResultSet resultSet = null;
DataDAO datadao = new DataDAO();
public List<JSONObject> getJsonObject()
{
resultSet = datadao.getResultSet();
List<JSONObject> resList = JsonServices.getFormattedResult(resultSet);
return resList;
}
//how to Convert this arraylist to array string using loop
public static void main(String[] args)
{
Main m = new Main();
List<JSONObject> jObj = m.getJsonObject();
for (int i = 0; i < jObj.size(); i++)
{
System.out.println(jObj.get(i));
}
}
}
Я попробовал следующий код, но он не работает.
package com.queryData.main;
import com.queryData.dao.DataDAO;
import com.queryData.services.JsonServices;
import java.sql.ResultSet;
import java.util.List;
import org.json.JSONObject;
public class Main {
ResultSet resultSet = null;
DataDAO datadao = new DataDAO();
public List<JSONObject> getJsonObject()
{
resultSet = datadao.getResultSet();
List<JSONObject> resList = JsonServices.getFormattedResult(resultSet);
return resList;
}
//how to Convert this arraylist to array string using loop
public static void main(String[] args)
{
Main m = new Main();
List<JSONObject> jObj = m.getJsonObject();
for (int i = 0; i < jObj.size(); i++)
{
//System.out.println(jObj.get(i));
}
String[] stringArr = jObj.toArray( new String[] {} );
for ( String element : stringArr ) {
System.out.println( element );
}
}
}
Любые предложения с благодарностью. Спасибо
3 ответа
Решение
Используйте StringBuilder для построения String:
List<Object> jObj = m.getJsonObject();
StringBuilder sb = new StringBuilder();
for(int i =0 ; i < jObj.size(); i++){
sb.append(jObj.get(i).toString());
}
в заключение sb.toString()
будет вашей желаемой строкой.
Я не уверен, что мы можем сделать это, используя цикл for. Но если вы хотите без цикла for. Мы можем сделать:
ArrayList<Integer> arrayList5=new ArrayList<Integer>();
arrayList5.add(1000000);
arrayList5.add(2000000);
//the final array created with the help of toArray
//is of Object type hence create an array first and then pass it as argument
Integer[] array5=new Integer[arrayList5.size()];
arrayList5.toArray(array5);
//print the array
for(Integer i: array5) {
System.out.println(i);
}
Вы можете внести некоторые изменения: список поддерживает трюк, как
List<Object> jObj = m.getJsonObject();
for(int i =0 ; i < jObj.size(); i++){
jObj.add(jObj.get(i).toString(), i); // change toString() to whatever u need
}