版權聲明:本文為部落客原創文章,轉載請标明出處。 https://blog.csdn.net/chaoyu168/article/details/78605578
在項目中,需要将list轉換為json字元串,發送給伺服器,在實作過程中先建立一個實體類App,但是得到的隻是list的最後一組資料,查找原因:要将new App放在for循環裡面,每次建立一個對象就ok了。
具體代碼:
public class App {
String label;
String packageName;
public String getPackageName() {
return packageName;
}
public void setPackageName(String packageName) {
this.packageName = packageName;
}
public String getLabel() {
return label;
}
public void setLabel(String label) {
this.label = label;
}
}
public class JsonInfo {
public static ArrayList<AppInfo> appInfoList;
public static List<App> apps = new ArrayList<>();
static App app;
public static void info() {
Gson gson = new Gson();
ApplicationList list = new ApplicationList();
appInfoList = list.AppList();
for (AppInfo appInfo : appInfoList) {
app = new App();
String label = appInfo.getLabel();
// Log.e("label",label);
String packageName = appInfo.getPackageName();
// Log.e("packageName",packageName);
app.setLabel(label);
app.setPackageName(packageName);
apps.add(app);
}
String jsonApp = gson.toJson(apps);
WriteSd(jsonApp);
}
private static void WriteSd(String str)
{
try{
if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED));
String foldername = Environment.getExternalStorageDirectory().getPath()+ "/360";
File folder = new File(foldername);
if (folder == null || !folder.exists()) {
folder.mkdir();
}
FileOutputStream out = new FileOutputStream(folder.getCanonicalPath()+ "/"+"json.txt");
out.write(str.getBytes());
out.close();
}catch(Exception e){
e.printStackTrace();
}
}
}