java - 解析字符串并创建 json 格式,然后保存到文本文件

标签 java android arrays json string

我想创建一个 json 文本并将其保存到文本文件中。这是到目前为止我编辑过的代码。我希望 jsonFormat.txt 中的输出必须包含这些字符串 {"Fname": "John low","Mname":"Bajud", "Lname": "Saddy"}。

        File myFile = new File("/sdcard/jsonFormat.txt");
        myFile.createNewFile();
        String delim = "\\|";
        String[] temp;
        String temp2;
        String data ="|Fname:John low|Mname:Bajud|Lname:Saddy|";

        data = data.substring(1, data.length() - 1);
        temp2 = data.split(delim);

        JSONObject jsonObject = new JSONObject();

         for(int index=0;index < temp2.length() ;index++){
             String[] sub_temp2 = temp2[index].split(":");
             jsonObject.put(sub_temp2[0],sub_temp2[1]);
         }  

         FileOutputStream fOuts = new FileOutputStream(myFile);
         OutputStreamWriter myOutWriter = new OutputStreamWriter(fOuts);
         myOutWriter.append(jsonObject.toString());
         myOutWriter.close();
         fOuts.close();

我决定解决我的问题,经过一番挣扎,我想出了一个解决方案:)这是我对上述问题的解决方案:)

 try {
        File myFile = new File("/sdcard/jsonFormat.txt");
        FileOutputStream fOuts = new FileOutputStream(myFile);
        myFile.createNewFile();

        StringBuilder builder = new StringBuilder();
        StringBuilder builder2 = new StringBuilder();
        String delim = "\\|";
        String delim2 = "\\:";
        String[] temp;
        String[] temp2;
        String[] sub;
        String data = "|Fname:James Bryan|Mname:Baguio|Lname:Juventud|Age:21|Gender:Male|Fname:James Bryan|Mname:Baguio|Lname:Juventud|Age:21|Gender:Male|";

        data = data.substring(1, data.length() - 1);
        temp2 = data.split(delim);
        //System.out.print(temp2[1]+"\n"); = Fname:James Bryan
        builder.append("{");

        int k=1;
        for(int i=0;i<temp2.length;i++){
            //System.out.print(temp2[i]+"\n");
            sub = temp2[i].split(delim2);
            for(int x=0;x<sub.length;x++){
                builder.append("\"");
                builder.append(sub[x]);
                builder.append("\"");

                if(k<2){
                    builder.append(":");
                    k++;
                }
                else
                    k--;
            }
            builder.append(",");
        }
        builder.append("}");

        String newData = builder.substring(0, builder.length()-2);
        builder2.append(newData);
        builder2.append("}");
        //System.out.println(builder2.toString());
        OutputStreamWriter myOutWriter = new OutputStreamWriter(fOuts);
        myOutWriter.append(builder2);
        myOutWriter.close();
        fOuts.close();

    } catch (Exception e) {
        e.printStackTrace();

    }

输出:JSON 字符串文本文件

 {"Fname": "James Bryan","Mname": "Baguio","Lname": "Juventud","Age": "21","Gender": "Male","Fname": "James Bryan","Mname": "Baguio","Lname": "Juventud","Age": "21","Gender": "Male"}

最佳答案

你的代码

temp2 = data.split(delim);

不会工作,因为你的delim是错误的

尝试

String delim = "\\|";

temp2应该是一个字符串数组;

关于java - 解析字符串并创建 json 格式,然后保存到文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34303705/

相关文章:

arrays - MongoDB 查询 IN 对象数组

arrays - C、从单个输入行读取多个数字

java - SOAP 请求在 Weblogic 中返回 EOFException

Android Studio 无法识别我的设备 - 一加一

java - 卡夫卡 throw "org.apache.kafka.clients.consumer.CommitFailedException"

android - 寻找关于如何在我的应用程序中可靠地维护联系人列表的明确答案

java - Android随机 Activity 不重复

ios - 检查数组是否包含Object :@(float) in Objective-C can unexpectedly return NO

java - 单击使用 sikuli 多次使用的特定下拉项

java - 从 JSON 对象中提取数组