죽밥이
898
2019-11-18 13:30:09
5
503

json 파싱 관련 질문드립니다



List db_save_data = new ArrayList();

String files = {"id": "myUpFile0_0_0", "name": "ROOT.zip", "size":"3555000", "date": "20191118132218", "url": "20191118/20191118132218"};

JSONParser parser = new JSONParser();

JSONArray existFiles = (JSONArray)parser.parse(files); <-- 에러나는 부분

db_save_data.addAll(existFiles);


에러 내용 : org.json.simple.JSONObject cannot be cast to org.json.simple.JSONArray

files는 String인데 이러한 에러가 나는 이유가 뭔지 모르겠습니다... 

혹시 아시는분 있으시면 도움 부탁드릴게요 ㅠㅠ

0
  • 답변 5

  • cogmind
    124
    2019-11-18 13:40:13

    files가 json배열이 아니라 객체네요

    JSONObject existFiles = (JSONObject)parser.parse(files); 이걸로 하시면 되겠어요

  • 죽밥이
    898
    2019-11-18 14:02:24 작성 2019-11-18 14:03:08 수정됨

    cogmind 님 답변 감사합니다!

    말씀대로

    JSONObject로 해봤는데 두번째 파일 업로드 까진 잘되는데, 3번째 파일부터는 null exception이 발생하네요..

    데이터를 print 해보면 잘나옵니다.

    [{"date":"20191118135057","size":31232,"name":"엑셀다운.xls","url":"20191118\/20191118135057"},{"date":"20191118135049","size":"3555000","name":"ROOT.zip","id":"myUpFile0_0_0","url":"20191118\/20191118135049"}]

    무엇이 문제일까요?..

  • DreamTree
    14
    2019-11-18 14:12:14
    null exception이 다른데서 나는게 아닐까요?
  • cogmind
    124
    2019-11-18 14:20:21

    json배열, 객체 둘중 하나가 넘어오는거같은데 try/catch에서 파싱코드 사용해서 jsonobect나 jsonarray값 확인한다음 

    가져와서 쓰면되겠네요

  • 죽밥이
    898
    2019-11-19 17:31:30

    try/catch로 확인해보니 COMMA 에러가 뜹니다. 원인을 모르겠네요..

    String files = '{"id": "myUpFile0_0_0", "name": "Excel (1).xls", "size":"7168", "date": "20191119172911", "url": "20191119/20191119172911"},{"id": "myUpFile0_0_1", "name": "Excel.xls", "size":"7168", "date": "20191119172441", "url": "20191119/20191119172441"}'

    JSONObject existFiles = (JSONObject) parser.parse(files);


    에러내용 : Unexpected token COMMA(,) at position 123.


  • 로그인을 하시면 답변을 등록할 수 있습니다.