2015-11-05 95 views
0

我有一個字符串遵循特定模式,我想將子字符串寫入JSON數組對象。JSONArray名稱值對修改

我有使用正則表達式的數組中的每個子字符串。

現在我想使用jsonarray對象將所有這些子字符串寫入json文件中。

我已經能夠做到這一點很好,但在JSON觀衆名稱值對顯示

0 abcde 
1 pqrs 

我要修改這些名稱(即0和1)以特定的字符串。怎麼做?

以下是我的代碼。

String introduction="<p>abcde</p><p>pqrs</p><p>xyz</p>"; 
JSONArray intro_paragraphs = new JSONArray(); 
Matcher m = Pattern.compile(Pattern.quote("<p>")+ "(.*?)"+ Pattern.quote("</p>")).matcher(introduction); 
while(m.find()) 
    { 
    String match_intro = m.group(1); 
    intro_paragraphs.put(match_intro); 
    obj.put("Section_Detailed_Introduction", intro_paragraphs); 
    } 

輸出是:::

[]Section_Detailed_Introduction 
0 abcde 
1 pqrs 
2 xys 

我想:::

para_1 abcde 
para_2 pqrs 
para_3 xyz 
+0

代碼你發佈不會產生任何輸出。產出如何?至於構建一個包含字符串的JSONArray,看起來很好。 'obj.put()'不需要在循環中;只做一次。 – dsh

+0

好的...但修改名稱 - 值對名稱的任何提示? –

+0

JSONArray不是名稱 - 值對結構的類型。一個Map是或者一個JSONObject。 'obj'是一個Map還是其他的東西?你不顯示它的聲明。 – dsh

回答

2

作出的代碼稍作修改就可以實現這個

String introduction="<p>abcde</p><p>pqrs</p><p>xyz</p>"; 
JSONObject intro_paragraphs = new JSONObject(); 
JSONObject obj=new JSONObject(); 
Matcher m = Pattern.compile(Pattern.quote("<p>")+ "(.*?)"+ Pattern.quote("</p>")).matcher(introduction); 
int i=1; 
String key="para_"; 
while(m.find()) 
{ 
    String match_intro = m.group(1); 
    intro_paragraphs.put(key+i, match_intro); 
    i++; 
} 
obj.put("Section_Detailed_Introduction", intro_paragraphs); 
+0

謝謝你..你的解決方案工作得很好.. –