2015-12-15 16 views
0

我想創建一個json格式的文本。這是我的字符串..解析字符串並在裏面創建一個json格式的jsonFormat.txt文件

String displayContents = "|Fname:Jose Marie|Mname: Baguio|Lname: Chan|"; 

而且我想要這種輸出。說jsonFormat.txt包含

{"Fname": "Jose Marie", "Mname": "Baguio", "Lname": "Chan"} 

這是我的代碼到目前爲止。

String data = (String) displayContents; 
    StringBuilder buff = new StringBuilder(); 
    String delim = "|"; 

    String[] tokens = data.split(delim); 
    File myFile = new File("/sdcard/jsonFormat.txt"); 
    buff.append(tokens); 

    data = data.substring(1, data.length()-1); 
    FileOutputStream fOuts = new FileOutputStream(myFile); 
    JSONObject jsonObject = new JSONObject(); 

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

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

以下是目前的代碼。

+0

提取數據創建regex,什麼是你的代碼的結果如何呢? –

+0

@AlexJolig jsonFormat.txt只包含{java.lang.String; 14162b0} :( –

+0

因爲你追加了數組的對象(標記)而不是數組的內容 –

回答

2

這裏:

String[] tokens = data.split(delim); 
File myFile = new File("/sdcard/jsonFormat.txt"); 
buff.append(tokens); 

這將節省逗號分隔字符串中的文本文件:

{,Fname:Jose Marie,Mname: Baguio,Lname: Chan,} 

創建一個有效的JSON字符串:

從開始刪除|並結束:

data =data.substring(1, data.length()-1); 

2.溢出字符串使用|

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

4.現在保存在jsonObject

String[] tokens = data.split(delim); 

3.使用字符串: DELIM並創建一個JSONObject再次溢出jsonFormat.txt

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

最後字符串存儲在文本文件中:

{"Fname": "Jose Marie", "Mname": "Baguio", "Lname": "Chan"} 

哪個是有效的JSON字符串。

而不是使用String.spilt,我們還可以從提供的字符串

+0

它說在myOutWriter.append(jsonObject);無法解析方法'append(org.jsonJson.Object)。 –

+0

@DecryptDCode:使用'myOutWriter.append(jsonObject.toString());' –

+0

先生?我的String delim必須包含什麼?我的delim =「|」插入逗號(,)先生的代碼在哪裏? –