Java 如何使用字符串类型的变量创建JSON文件
我有一个Java 如何使用字符串类型的变量创建JSON文件,java,android,json,Java,Android,Json,我有一个String类型的变量,我需要用这个变量创建一个json文件 我需要用变量“result”的内容创建JSON文件 我希望你能帮助我 提前谢谢 @TargetApi(Build.VERSION_CODES.KITKAT) public String showResult(View v) throws IOException { String result = ""; Gson json = new Gson(); for (Planet
String
类型的变量,我需要用这个变量创建一个json文件
我需要用变量“result”
的内容创建JSON文件
我希望你能帮助我
提前谢谢
@TargetApi(Build.VERSION_CODES.KITKAT)
public String showResult(View v) throws IOException {
String result = "";
Gson json = new Gson();
for (Planet p : plAdapter.getBox()) {
if (p.isSelected()){
/*json.put("name",p.getName());
json.put("distance",p.getDistance());
json.put("quantity",p.getQuantità());*/
result=result+json.toJson(p);
}
}
//result=json.toString();
String path = Environment.getExternalStorageDirectory()
.getAbsolutePath() + "/droidText/";
//FileWriter file=null;
/* try {
file = new FileWriter(path+"filename5.json");
file.write(result);
}catch(IOException ie){}
finally{
file.flush();
file.close();
}*/try(FileWriter file = new FileWriter(path + "filename.json")) {
// file=new FileWriter(path+"filename100.json");
/*FileWriter file = new FileWriter(path+"filename31.json");
file.write(result);
file.close();
*/
json.toJson(result);
//System.out.println("Successfully wrote Json result to file.");
/*catch(IOException r){
}*/
}catch (IOException e){
}
System.out.println(result);
return result;
}
@rajan ks对上述答案做了一点修改。这一个使用try with resource
语句来声明FileWriter
实例。您不需要关闭FileWriter
实例,也不需要捕获IOException
,因为它被抑制(根据[Java语言规范14.20.3])
更新1:更新了showResult()
以使用gson
public static String showResult(View v) throws IOException {
String result = "";
Gson json = new Gson();
for (Planet p : plAdapter.getBox()) {
if (p.isSelected()) {
result = result + json.toJson(p);
}
}
String path = Environment.getExternalStorageDirectory()
.getAbsolutePath() + "/droidText/";
try (FileWriter file = new FileWriter(path + "filename.json")) {
json.toJson(result, file);
}
return result;
}
@rajan ks对上述答案做了一点修改。这一个使用try with resource
语句来声明FileWriter
实例。您不需要关闭FileWriter
实例,也不需要捕获IOException
,因为它被抑制(根据[Java语言规范14.20.3])
更新1:更新了showResult()
以使用gson
public static String showResult(View v) throws IOException {
String result = "";
Gson json = new Gson();
for (Planet p : plAdapter.getBox()) {
if (p.isSelected()) {
result = result + json.toJson(p);
}
}
String path = Environment.getExternalStorageDirectory()
.getAbsolutePath() + "/droidText/";
try (FileWriter file = new FileWriter(path + "filename.json")) {
json.toJson(result, file);
}
return result;
}
使用所有值创建JSONObject使用所有值创建JSONObject她需要创建一个json文件而不是json对象这并没有回答这个问题。@rajanks以您的示例我将json存储在smartphone文件中?我要把它存起来。我能拿一把剪刀吗?@rajanks你能帮我吗?我在你的代码下添加了截图。他需要创建一个json文件,而不是json对象。这并没有回答这个问题。@rajanks,以你的例子,我将json文件存储在智能手机上?我要把它存起来。我能拿一把剪刀吗?@rajanks你能帮我吗?我在你的代码下添加了截图,当我在智能手机上点击JSON文件并用JSON查看器打开它时,文件全是白色的…@ZAO:你在使用哪个JSON框架,因为这在我这边有效?我使用的是Google Gson,但不是Android。使用json查看器(Android应用程序)它不起作用……你可以尝试使用我的同一个应用程序,你会发现它不起作用。不,我的意思是哪个gradle dependency为你提供了JsonObject
(Jackson,或Gson,或json.simple,或其他)?另外,你能分享你正在使用的确切的showResult
方法吗?我的成绩依赖项是compilefiletree(dir:'libs',include:['*.jar'])compile'com.android。支持:appcompat-v7:23.3.0'compile'com.android。支持:23.3.0'compile'com.android。支持:support-v4:23.3.0'compile文件('libs/tinydb-0.0.9.jar')编译文件('libs/droidText.0.2.jar')…现在我编辑了代码,这样你就可以看到我的方法完成了当我在智能手机上点击JSON文件并用JSON查看器打开它时,文件都是白色的…@ZAO:你在使用哪个JSON框架,因为它在我这边工作?我使用的是Google Gson,但不是Android。使用json查看器(Android应用程序)它不起作用……你可以尝试使用我的同一个应用程序,你会发现它不起作用。不,我的意思是哪个gradle dependency为你提供了JsonObject
(Jackson,或Gson,或json.simple,或其他)?另外,你能分享你正在使用的确切的showResult
方法吗?我的成绩依赖项是compilefiletree(dir:'libs',include:['*.jar'])compile'com.android。支持:appcompat-v7:23.3.0'compile'com.android。支持:23.3.0'compile'com.android。支持:support-v4:23.3.0'compile文件('libs/tinydb-0.0.9.jar')编译文件('libs/droidText.0.2.jar')…现在我编辑了代码,这样您就可以看到我的方法完成了