Удаление разрывов строк без r n

#javascript #json

#javascript #json

Вопрос:

В настоящее время я работаю над веб-сайтом и занимаюсь некоторыми JS-материалами. Я довольно новичок в этой теме, поэтому, пожалуйста, извините, если мой вопрос глупый 🙂

У меня есть строка JSON с некоторыми разрывами строк, однако я не могу разобрать ее в объект JSON (из-за разрывов строк), поэтому мне нужно их удалить, и я уже пробовал это с помощью

 stringJSON.replace(/(rn|r|n) /, '');
  

Однако это не работает, когда я делаю предупреждение для строки, разрывы строк все еще включаются.

У вас есть какие-либо предложения?

Заранее спасибо,

Wiwi 🙂

JSON:

 [
    {
        "key0": "value 0",
        "key1": "value 1",
        "key2": "value 2"
    },
    {
        "key0": "value 0",
        "key1": "value 1",
        "key2": "value 2"
    }
]
  

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

1. «Я не могу разобрать его в объект JSON» Если у вас есть действительный JSON, его можно разобрать. Вместо того, чтобы «исправлять» JSON в ретроспективе, вы должны сгенерировать действительный JSON для начала.

2. Это мой JSON, это неправильно? o.O[ { «key0»: «значение 0», «key1»: «значение 1», «key2»: «значение 2» }, { «key0»: «значение 0», «key1»: «значение 1», «key2»: «значение 2» } ]

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

4. «Это мой JSON, это неправильно?» Ну, вы сказали, что не можете его разобрать. Если вы не можете разобрать его, что-то должно быть не так. Как вы в настоящее время генерируете JSON? Можете ли вы включить правильно отформатированный пример в свой вопрос?

5. Я делаю var finalJSON = JSON.parse(stringJSON);

Ответ №1:

Вы должны присвоить результат замены переменной stringJSON, если вы действительно хотите обновить переменную stringJSON.

 stringJSON = stringJSON.replace(/(rn|r|n) /g, '');
  

Замена не изменяет исходную строку, потому что строки неизменяемы в Javascript.

Примечание: глобальный флаг в регулярном выражении (g) позволяет ему совпадать более одного раза. Без этого флага будет заменен только первый разрыв строки.

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

1. Я вижу, но это не работает. Предупреждение по-прежнему показывает разрывы строк, и консоль сообщает мне об ошибке в позиции lb…

2. В любом случае это неправильный подход к решению проблемы. Для начала надежнее сгенерировать действительный JSON.

3. Сначала я не понял, что конечные строки не должны влиять на результат, они являются допустимыми JSON. Извините за быстрый ответ, я также принял правку Доминика, которая была более точной.