Я пытаюсь отправить строковый массив в качестве параметра в запросе на получение.Строковый массив на JSON.stringify выводит символы Unicode
console.log(arrayOfStrings); //Prints ["28"]
var ids = JSON.stringify(arrayOfStrings);
console.log(ids); //Prints ["\u00002\u00008"]
$http.get('do_staff_search', { params:{'ids': ids } }).then(successHandler);
Однако, когда я stringify массива чисел, я получаю ["\u00002\u00008"]
, который затем вызывает ошибку на сервере java.lang.NumberFormatException: For input string: "▯2▯8"
с двумя прямоугольными блоками перед каждым номером.
Если я использую консоль Google Chrome, создайте один и тот же массив и stringify его, выход "["28"]"
Это кажется тривиальным вопрос, но я не мог найти хороший подобный вопрос на переполнение стека.
UPDATE
Я сделал несколько тестов, и это оказывается @MinusFour правильно. Это массив строк, а не массив целых чисел, как я предполагал (массив - это полезная нагрузка от другого запроса).
UPDATE 2
Я попытался преобразования массив строк на целочисленный массив с помощью этой функции:
function arrayOfNums(arr){
var newArr = [];
for (var i = 0; i < arr.length; i++) {
newArr[i] = parseInt(arr[i]);
};
return newArr;
}
Но разобрать Int возвращает NaN для каждого элемента. Теперь мне интересно, есть ли какая-то проблема с кодировкой с моими строками, что холодно вызывает ее, так как я получил их из запроса сервера, который я сделал ранее. Я нашел this related question, но я не уверен, как избежать каких-либо недопустимых символов.
Как и некоторый фон, массив хранится как CLOB в SQL DB. Я использую Spring и Jackson на стороне сервера, чтобы отправить объект JSON обратно, и внутри этого объекта у меня есть массив. Хотя у меня есть доступ к коду на сервере, я не могу его изменить, потому что есть другие приложения, которые обращаются к нему.
вы создаете этот массив жестко закодированный как это '[28]'? (например, код, который вы поделили) – Hacketo
Welll, я получаю '' [28] «на Firefox, в какой среде вы используете? – MinusFour
Выглядит что-то с редактором, на котором вы написали код. Как будто у вас есть невидимые специальные персонажи. –