Как записать 2 двумерный массив для объекта json в Java с помощью json-simple? - PullRequest
0 голосов
/ 11 июля 2019

Я настраиваю обработчик запросов игрового сервера java, который получает сообщения json и отправляет обратно соответствующее сообщение json в ответ.В некоторых случаях мне нужно отправить 2-мерный массив строк в качестве игрового поля.У меня проблема сделать это с помощью json-simple.Более того, как потом разобрать его на плате на стороне клиента?Благодарю.

char[][] charArray; //initialised  
JSONObject jsonOut = new JSONObject();
ObjectOutputStream writer = new ObjectOutputStream(socket.getOutputStream());
JSONArray ja = new JSONArray() ;

ja.add(charArray);
jsonOut.put("board", ja);
writer.writeObject(jsonOut);

получение исключения при ja.add (charArray);

Ответы [ 2 ]

1 голос
/ 11 июля 2019

Вы пытаетесь добавить весь массив char[][] как отдельный элемент в JSONArray. Вам необходимо создать многомерный JSONArray и сопоставить символ char[][] символ за символом:

JSONArray jsonArray = new JSONArray();
for (char[] ca : charArray) {
  JSONArray arr = new JSONArray();
  for (char c : ca) {
    arr.add(Character.toString(c)); // or some other conversion
  }
  jsonArray.add(arr);
}
0 голосов
/ 11 июля 2019

Вам нужен JsonArray из JsonArrays, точно так же, как ваша String [] [] является массивом массивов.

...