2017-02-22 35 views
0

Я следующего типа JSON массива (на самом деле я получил его в виде строки, так что я пытаюсь преобразовать его в JSON массив),Поиск ошибочный объект Json из массива JSON

[{"Message":{"AccountId":"0","CreationDate":"02-DEC-16","Sbu":null,"ProfileId":"28261723","messageSeqId":69},"Offset":6}, 
{"Message":{"AccountId":"0","CreationDate":"02-DEC-16","Sbu":null,"ProfileId":"28261271","messageSeqId":76},"Offset":7}, 
{"Message":{"AccountId":"0","CreationDate":"06-DEC-16","Sbu":null,"ProfileId":"28261871","messageSeqId":99},"Offset":8}, 
{"Message":{"AccountId":"0","CreationDate":"06-DEC-16","Sbu":null,"ProfileId":"28261921","messageSeqId":101},"Offset":9}, 
{"Message":{"AccountId":"0","CreationDate":"07-DEC-16","Sbu":null,"ProfileId":"28260905","messageSeqId":105},"Offset":10}] 

Иногда этот массив JSON синтаксический не удается потому что один объект JSON не смог разобрать (я использую JSON.simple для разбора JSON). Есть ли способ идентифицировать ошибочный объект JSON?

Вот часть кода (ResponseJson выше строки, которую необходимо преобразовать в массив JSON),

JSONParser jsonParser = new JSONParser(); 
    try{ 
     JSONArray jsonArray = (JSONArray) jsonParser.parse(ResponseJson); 
     int jsonArrayLength = jsonArray.size(); 
     System.out.println("jsonArray length: " + jsonArrayLength); 
     if (jsonArrayLength > 0) { 
      subscribeMessageEvent(topic,qStart,jsonArrayLength,jsonArray); 
     } 
    }catch (Exception e){ 
     e.printStackTrace(); 
    } 
+0

Что вы используете для разбора JSON? –

+2

в чем ваш вопрос/ошибка? –

+0

@JoPeyper, извините. Я обновил квест с ним. – Hasitha

ответ

0

Нет, вы не можете определить, какой объект JSON не правильно формируется с текущей реализации.

В любом случае, если вы получаете свой ввод в виде строки, вы можете разбить его на разные сообщения, а затем разобрать их отдельно. Таким образом, вы контролируете ситуацию, и вы можете решить, что делать с ними индивидуально.