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')…现在我编辑了代码,这样您就可以看到我的方法完成了