2013-10-31 26 views
0

您好成員的stackoverflow,如何在java中替換json文件的值

我需要一些幫助,以替換json文件中的一行。我試圖用同樣的方法替換文本文件中的一行,但沒有成功。

基本上JSON文件包含以下字符串:

"id": "TEXT", 

,我想用「HELLO」,以取代「TEXT」

我會怎麼做,我也有「json_simple」導入庫,如果這對此有任何用處。

任何幫助,這將不勝感激。

謝謝。

+2

什麼是您使用的「相同的方法」? JSON文件**是**文本文件,因此該方法(可能是某種版本的'String.replace')仍然可以工作! –

+0

請顯示完整的JSON文件和您的一些代碼,以瞭解您正在做什麼。 –

回答

1

,不使用JSON解析器有人建議,你可以簡單地用一個正則表達式做到這一點:

str = str.replaceAll("(\\s*?\"id\"\\s*?:\\s*?)\"TEXT\",", "$1\"HELLO\""); 

如果 「TEXT」 字符串是一個獨特的您可以簡單地使用字符串replace方法,以這種方式:

str.replace("\"TEXT\"", "\"HELLO\""); 
+0

Thankyou,這就是我需要:) – user2826304

+0

如果json文件包含「someval」:「\」id \「:\」TEXT \「,」? Regexps不適合以任何方式解析json。正則表達式根本無法理解它在哪個上下文中。 – Oroboros102

3

您不能像這樣替換值。因此,您需要將其從json中刪除並將其添加回來。

JSONObject js = new JSONObject(); // Your jsonobject here, this is just a sample 
js.remove("id"); // Since you want to replace the value associated with id, remove it 
js.put("id", "HELLO"); // add the new value for id 
0

試試這個

>  "id": { 
>   "type": "String", 
>   "value": "TEXT" ... 
> 
> JSONObject modifiedjson=new JSONObject(); 
> modifiedjson.put("type",childobject.get("type")); 
> modifiedjson.put("id","HELLO");