2014-04-07 58 views
0

我有不同的分隔符,如下面給出的一個管分隔文件,如何將管道分隔的數據轉換爲JSON?

c_prd_id||13043|L| 

c_prd_cd||c13043|L| 

c_title||14k Gold Two Tone Sparkle Chain Necklace|L| 

c_alt_tag||14k Gold Two Tone Sparkle Chain Necklace|L| 

c_desc||Add a little dazzle</strong> to your wardrobe with this two-tone gold chain.|L| 

c_web_tmp||collectionBTemplate|L| 

c_val_icons||Online_Exclusive.gif|L| 

c_r_cnt||2|L| 

c_r_val||5|L| 

c_child_prd||281506|L| 

c_child_prd||281527|L| 

c_child_prd||281544|L| 

c_prc_dsply_cd||REG|L| 

c_create_dt||1340214009|L| 

c_inv||0|L| 

c_primary_type||Jewelry|L| 

c_prd_type||Necklaces|L| 

c_prd_subtype||Necklaces|L| 

|R||L| 

c_prd_id||13045|L| 

c_prd_cd||c13045|L| 

c_title||14k Gold Two-Tone Singapore Chain Necklace|L| 

c_alt_tag||14k Gold Two-Tone Singapore Chain Necklace|L| 

c_desc||Glamorous!Enhance your jewelry collection with this delicate 14k yellow gold and 14k white gold Singapore chain.|L| 

c_web_tmp||collectionBTemplate|L| 

c_val_icons||Online_Exclusive.gif|L| 

c_r_cnt||1|L| 

c_r_val||5|L| 

c_child_prd||281507|L| 

c_child_prd||281528|L| 

c_child_prd||281545|L| 

c_prc_dsply_cd||REG|L| 

c_create_dt||1340214010|L| 

c_inv||0|L| 

c_primary_type||Jewelry|L| 

c_prd_type||Necklaces|L| 

c_prd_subtype||Necklaces|L| 

|R||L| 

我需要這些分隔的數據轉換成JSON格式。請指教。

+1

雙管(||),| L |的意義是什麼?和| R |。你能給我們詳細一點嗎? –

+0

我不太確定,但我認爲他們應該是這樣的, 「key」|| 「價值」, | L | - 行尾, | R | - 爲一個項目設置的數據結束。 –

回答

1

你可以做一些拆分和替換操作。下面是Java內容中的一個示例,您可以將其轉換爲json格式,調用toJsonArr方法。

public static String toJsonArr(String src){ 
    StringBuilder builder = new StringBuilder(); 
    String objArray[] = src.split("\\|R\\|\\|L\\|"); 
    builder.append("["); 
    for(String obj : objArray){ 
     builder.append(toJsonObj(obj)).append(","); 
    } 

    //remove last comma , 
    String str = builder.substring(0, builder.length()-1); 

    return str+"]"; 
} 

public static String toJsonObj(String src){ 
    StringBuilder builder = new StringBuilder(); 
    String elemArray[] = src.split("\\|L\\|"); 
    builder.append("{"); 
    for(String elem : elemArray){ 
        //for empty lines 
     if(elem.trim().length()!=0) 
      builder.append(toJsonElem(elem)).append(","); 
    } 

    //remove last comma , 
    String str = builder.substring(0, builder.length()-1); 

    return str+"}"; 
} 

public static String toJsonElem(String src){ 
    StringBuilder builder = new StringBuilder(); 
    builder.append("\"").append(src.trim().replaceAll("\\|\\|", "\":\"")).append("\""); 
    return builder.toString(); 
} 
+0

爲此我逐行傳遞給toJsonArr方法? –

+0

不,將全部內容作爲單個字符串傳遞給jsonArr,輸出將是表示Json數組的單個字符串。 –

+0

美麗!哦,有一個問題。有幾個重複鍵, c_child_prd || 281506 | L | c_child_prd || 281527 | L | c_child_prd || 281544 | L |我能如何克服它們? –

相關問題