2016-11-08 3 views
0

Я пытаюсь прочитать два объекта в Json-файле с помощью Java JSONParser, но при анализе Json-файла у меня возникает проблема ниже. Я предоставил Java-код и содержимое Json-файла для вашей справки.Java-Json File Parser issue

Выпуск:

Unexpected token LEFT BRACE({) at position 286. 
    at org.json.simple.parser.JSONParser.parse(Unknown Source) 
    at org.json.simple.parser.JSONParser.parse(Unknown Source) 

Java код:

public static void main(String[] args) throws Throwable { 
     JSONParser parser = new JSONParser(); 
     JSONObject a = null; 
     Connection con = null; 
     Statement stmt = null; 
     try { 
      Object obj = parser.parse(new FileReader("C:\\Users\\mhq175\\workspace2\\JCucumber\\JSON_FILES\\Datafile.json")); 
      JSONObject jsonObject = (JSONObject) obj; 
      JSONObject structure = (JSONObject) jsonObject.get("MessageContext"); 
      JSONObject structure_2 = (JSONObject) jsonObject.get("MessageContext1"); 
      con = postconn.getConnection(); 
      String entireFileText = "INSERT INTO Events" 
         + " VALUES ('"+ structure + "','"+ structure_2 + "');"; 
      System.out.println(entireFileText); 
      stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, 
        ResultSet.CONCUR_READ_ONLY); 
      stmt.executeUpdate(entireFileText); 
    } catch (FileNotFoundException e) { 
     e.printStackTrace(); 
    } catch (Exception e1) { 
     e1.printStackTrace(); 
    } 
} 

Json Файл:

{ 
    "MessageContext": { 
     "field1": "VALUE1", 
     "field2": "VALUE2", 
     "field3": "VALUE3", 
     "field4": "VALUE4", 
     "field5": "VALUE5" 
    }, 
    "MessageContext1": { 
     "field1": "VALUE1", 
     "field2": "VALUE2", 
     "field3": "VALUE3", 
     "field4": "VALUE4", 
     "field5": "VALUE5" 
    } 
}{ 
    "MessageContext": { 
     "field1": "VALUE1", 
     "field2": "VALUE2", 
     "field3": "VALUE3", 
     "field4": "VALUE4", 
     "field5": "VALUE5" 
    }, 
    "MessageContext1": { 
     "field1": "VALUE1", 
     "field2": "VALUE2", 
     "field3": "VALUE3", 
     "field4": "VALUE4", 
     "field5": "VALUE5" 
    } 
} 
+0

Вы проверили свой JSON с помощью любых онлайн-инструментов? '} {' неверно. Мне нравится jsonlint – AxelH

+1

Ваш json-файл недопустим: он содержит 2 json-объекта друг за другом. – pozs

ответ

0

JSON вы отправляете в не верный. Он состоит из 2 объектов JSON один за другим, что является незаконным. Либо вы должны добавить оба объекта в JSONArray, получить отдельный объект из массива и манипулировать им. Или вы можете разбить строку Json на "} {", а затем преобразовать ее в объект json для дальнейших вычислений.

P.S. Я знаю, что второй подход грязный, но это может заставить кого-то сделать день.

+0

Если вы разделились на '} {', это все равно было бы недействительным, если бы вы не добавили эти символы. –

+0

Это то, что вполне понятно. Мой ответ - просто дать указания –

+0

Не все понимают формат JSON (как это видно из вопроса), поэтому я решил, что я бы прямо сказал, что –