#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. Извините за быстрый ответ, я также принял правку Доминика, которая была более точной.