Java 在android应用程序中将Json转换为Csv格式
Iam在android应用程序中将Json文件转换为Csv格式,并将其下载到手机存储器中。Iam只需单击一个按钮即可完成所有操作。目前,它正在手机存储器中创建.Csv文件,但该文件为空。我已调试该应用程序,它从Json for循环中获取字符串,但不知道为什么不将其写入Csv文件中。Csv文件在电话存储器中创建的始终为空。 此外,我想给每一行标题,我如何才能做到这一点 以下是我编写csv的函数:Java 在android应用程序中将Json转换为Csv格式,java,android,csv,Java,Android,Csv,Iam在android应用程序中将Json文件转换为Csv格式,并将其下载到手机存储器中。Iam只需单击一个按钮即可完成所有操作。目前,它正在手机存储器中创建.Csv文件,但该文件为空。我已调试该应用程序,它从Json for循环中获取字符串,但不知道为什么不将其写入Csv文件中。Csv文件在电话存储器中创建的始终为空。 此外,我想给每一行标题,我如何才能做到这一点 以下是我编写csv的函数: public void saveCsv(JSONArray outerArray) throws IO
public void saveCsv(JSONArray outerArray) throws IOException, JSONException {
String rootPath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/test/";
File dir = new File(rootPath);
if (!dir.exists()) {
dir.mkdir();
}
File file = null;
file = new File(rootPath, "test4.csv");
if(!file.exists()){
file.createNewFile();
}
if (file.exists()) {
CSVWriter writer = new CSVWriter(new FileWriter(file), ',');
for (int i = 0; i < outerArray.length(); i++) {
JSONArray innerJsonArray = (JSONArray) outerArray.getJSONArray(i);
for(int k=0; k<innerJsonArray.length(); k++)
{
String[][] arrayOfArrays = new String[innerJsonArray.length()][];
JSONObject innerJsonObject= (JSONObject) innerJsonArray.getJSONObject(k);
String[] stringArray1 = new String[innerJsonObject.length()];
stringArray1[0]= (String) innerJsonObject.getString("type");
stringArray1[1]= (String) innerJsonObject.getString("title");
stringArray1[2]="";
JSONArray jsonArray= (JSONArray) innerJsonObject.getJSONArray("answer");
for (int j=0; j<jsonArray.length(); j++)
{
stringArray1[2]+=jsonArray.get(j).toString();
stringArray1[2]+=",";
}
arrayOfArrays[k] = stringArray1;
writer.writeNext(arrayOfArrays[k]);
}
}
writer.close();
}
}
public void saveCsv(JSONArray outerArray)抛出IOException、jsoneexception{
字符串rootPath=Environment.getExternalStorageDirectory().getAbsolutePath()+“/test/”;
文件目录=新文件(根路径);
如果(!dir.exists()){
dir.mkdir();
}
File=null;
file=新文件(rootPath,“test4.csv”);
如果(!file.exists()){
createNewFile();
}
if(file.exists()){
CSVWriter writer=new-CSVWriter(新文件编写器(文件),,);
对于(int i=0;i
JSONObject innerJsonArray = (JSONObject) outerArray.getJSONObject(i);
更新此函数
public void saveCsv(JSONArray outerArray) throws IOException, JSONException {
String rootPath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/test/";
File dir = new File(rootPath);
if (!dir.exists()) {
dir.mkdir();
}
File file = null;
file = new File(rootPath, "test4.csv");
if (!file.exists()) {
file.createNewFile();
}
int a = 0;
if (file.exists()) {
CSVWriter writer = new CSVWriter(new FileWriter(file), ',');
for (int i = 0; i < outerArray.length()-1; i++) {
JSONObject innerJsonArray = (JSONObject) outerArray.getJSONObject(i);
String[] arrayOfArrays = new String[innerJsonArray.length()];
String[] stringArray1 = new String[innerJsonArray.length()];
stringArray1[0] = innerJsonArray.getString("type");
stringArray1[1] = innerJsonArray.getString("title");
stringArray1[2] = "";
JSONArray jsonArray = (JSONArray) innerJsonArray.getJSONArray("answer");
for (int j = 0; j < jsonArray.length(); j++) {
stringArray1[2] += jsonArray.get(j).toString();
stringArray1[2] += ",";
}
arrayOfArrays = stringArray1;
a++;
writer.writeNext(arrayOfArrays);
}
writer.close();
}
}
public void saveCsv(JSONArray outerArray)抛出IOException、jsoneexception{
字符串rootPath=Environment.getExternalStorageDirectory().getAbsolutePath()+“/test/”;
文件目录=新文件(根路径);
如果(!dir.exists()){
dir.mkdir();
}
File=null;
file=新文件(rootPath,“test4.csv”);
如果(!file.exists()){
createNewFile();
}
int a=0;
if(file.exists()){
CSVWriter writer=new-CSVWriter(新文件编写器(文件),,);
对于(int i=0;i
这将是工作
将您的JSONArray发布到此处,我在运行时从firebase数据库创建json任何虚拟格式[[{“答案”:[“2”],“类型”:1,“标题”:“问题2半径”},{“答案”:[“0”、“1”、“3”],“类型”:3,“标题”:“问题3 chk”},{“答案”:“简单文本”,“类型”:2,“标题”:“问题1文本”},{“答案”:[“文章写作”],“类型”:4,“问题4段落”}]这对我有用,你没有存储权限可能是
public void saveCsv(JSONArray outerArray) throws IOException, JSONException {
String rootPath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/test/";
File dir = new File(rootPath);
if (!dir.exists()) {
dir.mkdir();
}
File file = null;
file = new File(rootPath, "test4.csv");
if (!file.exists()) {
file.createNewFile();
}
int a = 0;
if (file.exists()) {
CSVWriter writer = new CSVWriter(new FileWriter(file), ',');
for (int i = 0; i < outerArray.length()-1; i++) {
JSONObject innerJsonArray = (JSONObject) outerArray.getJSONObject(i);
String[] arrayOfArrays = new String[innerJsonArray.length()];
String[] stringArray1 = new String[innerJsonArray.length()];
stringArray1[0] = innerJsonArray.getString("type");
stringArray1[1] = innerJsonArray.getString("title");
stringArray1[2] = "";
JSONArray jsonArray = (JSONArray) innerJsonArray.getJSONArray("answer");
for (int j = 0; j < jsonArray.length(); j++) {
stringArray1[2] += jsonArray.get(j).toString();
stringArray1[2] += ",";
}
arrayOfArrays = stringArray1;
a++;
writer.writeNext(arrayOfArrays);
}
writer.close();
}
}