文字列がjsonかどうかを確認できるようにしようとしています。私がやっているやり方は、jsonの値を配列に入れて、値が入っているかどうかを調べることです。問題は、それが1つずつチェックすることです。これにより、ユーザはシフトを行っていないと言います。その後、次のループで、彼らは働いていると言います。jsonに文字列値が含まれていないか確認してください。
private void CheckIfAlreadyWorking(String result) throws JSONException {
//removed code to condense
//result is a json of the days that the user is already working
if (datematcher.find()) {
String date = datematcher.group(1); //Date of the shift the user is already working
JSONArray jsonArray = new JSONArray(result);
String[] yourshifts = new String[jsonArray.length()];
boolean end = false;
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject obj = jsonArray.getJSONObject(i);
yourshifts[i] = obj.getString("date");
if (yourshifts[i].contains(date)) {
//Already working that day
Toast.makeText(getApplicationContext(), "Error: You are already working this day", Toast.LENGTH_SHORT).show();
} else if(end == false){
AddShift();
end = true;
}
}
}
else {
//Error
}
}
正確な問題は何か説明できますか? コードは私にとってはうまく見えます。 ここで直面している問題は何ですか? –
ユーザがシフトを選択すると、このコードは、そのシフトがすでにその日付で動作しているかどうかをチェックするために使用されます。ただし、配列を一度に1つずつチェックします。したがって、日付が最初でない場合、その日付で作業していないと言い、AddShift();を呼び出します。実際に彼らは既にその日付で動作しているので、AddShift();呼び出されるべきではありません。配列の後半です。 – James