У меня есть большой проект im, над которым работает, есть кусок кода, в котором я получаю 2 массива String из запроса HTTP-почты на моем сервере, используя весну и hibernate (формат json), когда я печатаю размер массивов, я получаю 1 взамен, но в то же время у меня есть (как я должен/хочу/ожидать) 2 элемента внутри него, поэтому, когда я перебираю массив с ожидаемой длиной Я получаю «массив из связанного исключения», и это действительно странно.Строка [] длина массива не равна фактическому количеству элементов внутри него
p.s. - эта проблема повторяется и в других местах, может быть, она имеет какое-то отношение к спячке/весне ?.
выход:
JSON:
{"deviceAddr":["0022C01504D3,0022C015050F"],"devicePass":["HOMI26,HOMI26"],"deviceCount":2,"version":"MU18"}
Код:
public class AddBatchObject {
private String[] deviceAddr;
public String[] getDeviceAddr() {
return deviceAddr;
}
@Override
public String toString() {
String batch = "";
if (deviceAddr != null){
batch += "deviceAaddr - " + "size = " + deviceAddr.length + ", "
+ Arrays.asList(deviceAddr).toString() + "\n";
}
if (devicePass != null){
batch += "devicePass - " + "size = " + devicePass.length + ", " +
Arrays.asList(devicePass).toString() + "\n";
}
return batch;
}
}
контроллер Остальное:
@RequestMapping(value = "/add/mac",method = RequestMethod.POST, produces = "application/json")
public @ResponseBody Object addMac(@RequestBody AddBatchObject addBatchObject, HttpServletRequest request) throws AuthenticationException{
LoggerUtils.getLogger().info("addMac");
return AdminAddMac.adminAddMac(addBatchObject,request);
}
Редактировать: как jtahlborn и Joe ответил, что данные json были неверно: ["0022C01504D3,0022C015050F"] - это один массив элементов. a двухэлементный массив будет ["0022C01504D3", "0022C015050F"].
Пожалуйста, пост [mcve] поведения. – Tunaki
Я не могу воспроизвести это. – Sweeper
попробуйте этот 'batch + =" '"+ deviceAddr [0] +"' ";' – jtahlborn