2013-02-01 53 views
0

我只想知道如何在運行時更改/更新json文件中的值。我在如何更新json文件時遇到了問題。在android java中更新json文件JSONObject

public void parseJSON() throws JSONException, IOException 
{ 
    InputStream is = this.getResources().openRawResource(R.raw.qdb); 
    byte [] buffer = new byte[is.available()]; 
    while (is.read(buffer) != -1); 

    String jsontext = new String(buffer); 

    jsonObject = new JSONObject(jsontext); 

    JSONObject object = jsonObject.getJSONObject("level1"); 

    String c = object.put("value2", "third value").toString(); 

    String attr1 = object.getString("value1"); 
    String attr2 = object.getString("value2"); 

    strParsedValue="Value 1 = "+attr1; 
    strParsedValue+="\nValue 2 = "+attr2; 
    strParsedValue+="\n\n\n" + c; 


    txtViewParsedValue.setText(strParsedValue); 
} 

JSON文件: { 「級別1」:{ 「值1」: 「一個值」, 「值2」: 「二值」 } }

輸出:

Value 1= one value 
Value 2 = third value 

{"value1":"one value","value2":"third value"} 

{ 
"level":{ 
    "value1":"one value", 
    "value2":"two value" 
} 
} 
+0

您的有條件的while語句沒有打開和關閉curley括號! –

+0

直到我將花括號放在哪裏? – user2032847

+0

應該是這樣的格式:while(condition to test){code to execute here} –

回答

1

應該是這樣的格式:在(條件測試){代碼在本地執行} 可能是其他的語法錯誤,以及,所以我不是說你的程序將現在的工作

例子:

public void parseJSON() throws JSONException, IOException 
    { 
     InputStream is = this.getResources().openRawResource(R.raw.qdb); 
     byte [] buffer = new byte[is.available()]; 
     while (is.read(buffer) != -1){ 



       example code to execute here; 
     } 

    } 
+0

之後,你是如何更新json文件的? – user2032847

+0

我認爲你需要給出更多的清晰度/信息,關於你到底想要達到什麼目的,什麼是json文件,這個文件是否有一個路徑名,不同的變量用於什麼,或許找出各種各樣的類和函數在你的程序中,以及其他相關的東西。做一點研究,然後回過頭來,把它呈現給人們,然後你會幫助人們回答你的問題,如果你也嘗試幫助,人們更可能幫助你。同時請記住給予人們信譽積分,以表示您對他們的幫助表示感謝。 –