2017-04-07 13 views
0

私は、次のオブジェクト持っているに書き込む:JSONArrayを取得し、JSONArray

{ 
    "some_prop": "sweetvalue", 
    "some_list": ["0f9f822cd7e64000ac056ebc17b82f1d", "0f9f82223094fj7b82f1d"] 
} 

を私はsome_listを取得し、その後、ファイルへの保存、some_listへの書き込みをしようとしています。次のコードを使用して:

public String getData(String key) { // this is confusion should be getConfigValue 
    String data = getConfig(); 
    JSONObject jsonData; 
    Object content = null; 
    try { 
     jsonData = new JSONObject(data); 
     if (key != null) { 
      content = jsonData.getString(key); 
     } else { 
      content = jsonData.toString(); 
     } 
    } catch (JSONException e) { 
     e.printStackTrace(); 
    } 
    return content.toString(); 
} 

private void saveFile(String data) { 
    File file = configFile; 
    try (FileOutputStream fop = new FileOutputStream(file)) { 
     if (!file.exists()) file.createNewFile(); 
     byte[] contentInBytes = data.getBytes(); 
     fop.write(contentInBytes); 
     fop.flush(); 
     fop.close(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
} 

public void appendToArrayValue(String uuid) { 
    JSONObject configData = new JSONObject(getConfig()); 
    JSONArray mutedPlayers = configData.getJSONArray("some_list"); 
    JSONArray uuidArray = new JSONArray(uuid); 

    JSONArray newArray = concatArray(mutedPlayers, uuidArray); 

    JSONObject newConfigData = configData.put("some_list", newArray); 
    saveFile(newConfigData.toString()); 
} 

このコードを実行しようとすると、私は次のエラーを取得する:

org.json.JSONException: A JSONArray text must start with '[' at 1 [character 2 line 1]

を私は本当に間違っているかわからないんだけど、私は私のコードはひどい知っていますでもそれだけです。

答えて

0

エラーがラインJSONArray uuidArray = new JSONArray(uuid);にあるようですか?

prevoiusの線JSONArray mutedPlayers = configData.getJSONArray("some_list");は正常に動作するはずです。 もしそうなら、uuidはJSONオブジェクト全体なので、配列をnew JSONArray(uuid)に渡しています。