Чтение файла .CSV в Java, содержащего обратную косую черту

#java #csv #jexcelapi

#java #csv #jexcelapi

Вопрос:

У меня возникла проблема, когда я читаю ячейки с «» в нем, а затем пытаюсь заменить его на «» из-за свойства Java escape.

Например: «Ошибка: предоставленные учетные данные P jb»

Когда я читаю это непосредственно из ячейки, используя:

 if (type == TStream.Spreadsheet) {
            try {
                FileInputStream stream = new FileInputStream(file);
                Workbook workbook = Workbook.getWorkbook(stream);
                Sheet sheet = workbook.getSheet(0);

                int rows = sheet.getRows();

                int ignored = 0;
                int parsed = 0;

                for (int i = 1; i < rows; i  ) {
                    try {
                        Cell content = sheet.getCell(0, i);
  

И после этого поместите его в объект, который я создал для хранения его информации:

     ObjectThatIMade object_= new ObjectThatIMade();

    object_.setContent(content.getContents().replace("\", "\\"));
  

Это не меняет » на ‘\’, я сделал то же самое с replaceAll, это тоже не работает. Он сохраняется таким же образом, и когда я пытаюсь отправить его с помощью JSON на мой веб-сервис, он не будет работать из-за » в строке, это выдает ошибку.

Есть ли какой-либо способ гарантировать, что » заменяется на ‘\’?

Большое спасибо за ваше время!

Комментарии:

1. Скорее всего, вы неправильно создаете свой JSON. Для этого используйте библиотеку; не пытайтесь создавать строку JSON самостоятельно.

2. У вас уже есть строка, которая может корректно содержать неэкранированные обратные косые черты. Единственная причина избежать их — это если вы вручную создаете строку в Java с их помощью

3. Не могли бы вы опубликовать реализацию создания документа JSON?

4. Вы можете использовать так: JSONObject jsonObject = new JSONObject(); jsonObject.put("nameOfTheField", value); Затем, после этого вы просто отправляете его, в моем случае я выполняю синтаксический анализ следующим образом: jsonToSend = jsonObject.toString(); Но это только один из способов сделать это. Надеюсь, это поможет.

5. Каков пакет JSONObject класса?

Ответ №1:

Даже когда я пытался вставить с помощью объекта JSON, это выдавало ошибки, возможно, я делаю что-то не так, но то, что я сделал, и это сработало сейчас, — это использовать .replace("\","\\") перед присвоением объекту JSON.

И это сработало, я работаю с несколькими приложениями, и эти приложения содержат несколько файлов синтаксического анализа, что создает много проблем и добавляет ненужную сложность.

Большое спасибо за вашу помощь, ребята!