0
我在做一個項目,用戶可以在互聯網上發放的文件系統訪問給第三方,我寫了下面的代碼在存儲中的所有文件映射:映射存儲結構,以JSON格式的Android
private List<File> getListFiles(File parentDir) {
ArrayList<File> inFiles = new ArrayList<File>();
File[] files = parentDir.listFiles();
for (File file : files) {
if (file.isDirectory()) {
inFiles.addAll(getListFiles(file));
} else {
inFiles.add(file);
}
}
return inFiles;
}
,我使用它作爲
JSONArray jarray=new JSONArray(getListFiles(Environment.getExternalStorageDirectory()));
和我面臨的問題是,我得到的JSON對象的整個文件路徑。但我需要的是文件和目錄的有序Json結構(僅限名稱和子目錄),排除整個文件路徑。我試圖使用模型來映射文件和目錄,如下面
public class BasiDir {
List<BasiDir> subDir;
String name;
List<FileInside> files;
/**
* @return the subDir
*/
public List<BasiDir> getSubDir() {
return subDir;
}
/**
* @param subDir the subDir to set
*/
public void setSubDir(List<BasiDir> subDir) {
this.subDir = subDir;
}
/**
* @return the name
*/
public String getName() {
return name;
}
/**
* @param name the name to set
*/
public void setName(String name) {
this.name = name;
}
/**
* @return the files
*/
public List<FileInside> getFiles() {
return files;
}
/**
* @param files the files to set
*/
public void setFiles(List<FileInside> files) {
this.files = files;
}
}
public class FileInside {
String filepath,filename;
/**
* @return the filename
*/
public String getFilename() {
return filename;
}
/**
* @param filename the filename to set
*/
public void setFilename(String filename) {
this.filename = filename;
}
}
,但我得到混淆大部分時間在哪裏使用它們,有誰能夠指出我的,我可以完成這個任務的正確方向,任何鏈接到第三方庫也歡迎
編輯
我需要的格式如下: (對於具有兩個文件的目錄和子目錄)
{
"root":[
{
"filename":"a.txt"
},
{
"filename":"b.txt"
},
{
"dirA":[
{
"filename":"c.txt"
},
{
"filename":"d.txt"
}
]
}
]
}
那麼舉一個你如何看待json文本的例子吧。 – greenapps
請參閱編輯 – insomniac