如何在Android上将多维JSON数组保存到CSV文件?

如何在Android上将多维JSON数组保存到CSV文件?,第1张

概述我想将大型JSON数组数据存储到CSV文件中.我怎样才能做到这一点?我有以下代码,不会将任何数据保存到我的android“test”文件夹中创建的“test1.csv”文件中.这是代码.JSONArrayouterArray=[{"value":true,"Id":0,"name":"214"},{"value":true,"Id":0,"name&quo

我想将大型JSON数组数据存储到CSV文件中.我怎样才能做到这一点?

我有以下代码,不会将任何数据保存到我的androID“test”文件夹中创建的“test1.csv”文件中.

这是代码.

JsONArray outerarray = [{"value":true,"ID":0,"name":"214"},    {"value":true,"ID":0,"name":"215"},{"value":true,"ID":0,"name":"216"}]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;    EditText editText = (EditText) findVIEwByID(R.ID.editText1);    if (!editText.getText().toString().equals("")) {        file = new file(rootPath, editText.getText().toString() + ".csv");    } else {        editText.setError("Defualt csv file name will be used");        Toast.makeText(this, "CSV name is empty", 5000).show();        file = new file(rootPath, "test1.csv");    }    file.createNewfile();    if (file.exists()) {        CSVWriter writer = new CSVWriter(new fileWriter(file), ',');        String[][] arrayOfArrays = new String[outerarray.length()][];        for (int i = 0; i < outerarray.length(); i++) {            JsONObject innerjsonArray =  (JsONObject) outerarray.get(i);            String[] stringArray1 = new String[innerjsonArray.length()];            for (int j = 0; j < innerjsonArray.length(); j++) {                stringArray1[j] = (String) innerjsonArray.get("value");            }            arrayOfArrays[i] = stringArray1;            writer.writeNext(arrayOfArrays[i]);        }        writer.close();    }}

解决方法:

我从这里http://sourceforge.net/projects/opencsv/使用了opencsv-2.3.jar.这里记录了http://sourceforge.net/projects/opencsv/

我有跟随JsON的布尔值,它将布尔值转换为字符串值

JsONArray outerarray = [{"value":true,"ID":0,"name":"214"},    {"value":true,"ID":0,"name":"215"},{"value":true,"ID":0,"name":"216"}]

我已将Json.get()更改为Json.getString().下面的代码工作正常:)

    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;    EditText editText = (EditText) findVIEwByID(R.ID.editText1);    if (!editText.getText().toString().equals("")) {        file = new file(rootPath, editText.getText().toString() + ".csv");    } else {        editText.setError("Defualt csv file name will be used");        Toast.makeText(this, "CSV name is empty", 5000).show();        file = new file(rootPath, "test1.csv");    }    if(!file.exists()){        file.createNewfile();    }           if (file.exists()) {        CSVWriter writer = new CSVWriter(new fileWriter(file), ',');        String[][] arrayOfArrays = new String[outerarray.length()][];        for (int i = 0; i < outerarray.length(); i++) {            JsONObject innerjsonArray =  (JsONObject) outerarray.get(i);            String[] stringArray1 = new String[innerjsonArray.length()];            stringArray1[0]= (String) innerjsonArray.getString("ID");            stringArray1[1]= (String) innerjsonArray.getString("value");            stringArray1[2]= (String) innerjsonArray.getString("name");            arrayOfArrays[i] = stringArray1;            writer.writeNext(arrayOfArrays[i]);        }        writer.close();    }}
总结

以上是内存溢出为你收集整理的如何在Android上将多维JSON数组保存到CSV文件?全部内容,希望文章能够帮你解决如何在Android上将多维JSON数组保存到CSV文件?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1106529.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存