자바에서 중첩 된 JSON 배열 구문 분석

vick_4444

아래 형식의 json 파일이 있습니다.

{
    "data":[ 
        {
          "prjId": 1,
          "name" : "Forj1",
          "issue": [
                    {
                      "id": 00001,
                      "status" : "Closed"
                    },
                    {
                      "id": 00002,
                      "status" : "Open"
                    }
                ]
          },  
          {
          "prjId": 2,
          "name" : "Forj2",
          "issue": [
                    {
                      "id": 00003,
                      "status" : "Closed"
                    },
                    {
                      "id": 00004,
                      "status" : "Open"
                    }
                ]
          }],
    "issueCounter": 7,
    "success": true
}

여기서 "데이터"는 프로젝트의 배열이고 프로젝트 속성 내에는 "문제"의 배열이 있습니다.

지금까지 "issue"배열을 제거하면 "data"속성에서 json을 한 수준 아래로 이동할 수 있습니다.이 json에 "issue"배열이 있으면 쉼표가 없다는 오류가 표시됩니다.

javax.json.stream.JsonParsingException: Invalid token=NUMBER at (line no=15, column no=14, offset=242) Expected tokens are: [COMMA]

아래는 지금 내가 가지고있는 코드입니다. 두 가지 문제가 있습니다. 하나는 "issue"속성을 배치하면 읽는 동안 오류가 발생하고 두 번째로 "issue"배열을 읽고 그 안의 모든 속성을 탐색하는 방법입니다.

InputStream fis = new FileInputStream(pathToFile+"data3.json");
JsonReader jsonReader = Json.createReader(fis);

//the error is thrown on below line while reading the above json. 

JsonObject jsonObject = jsonReader.readObject();

jsonReader.close();
fis.close();

System.out.println(jsonObject.getInt("issueCounter"));

//reading arrays from json
JsonArray jsonArrayData = jsonObject.getJsonArray("data");
Project [] prj = new Project[jsonArrayData.size()];
int index = 0;
for(JsonValue value : jsonArrayData){

    JSONObject jsonObj = new JSONObject(value.toString());
    System.out.println(jsonObj.getString("name"));
    System.out.println(jsonObj.getInt("prjId"));

    //this is also the place where I am stuck, I know I need to construct an array out of it by obtaining issue attribute. Below is very very wrong.
    /*
    JsonArray jsonArrayIssue = jsonObj.getJsonArray("issue");
    for(JsonValue issue : jsonArrayIssue){

        JSONObject jsonIssueObj = new JSONObject(issue.toString());
        System.out.println(jsonIssueObj.getString("status"));
        System.out.println(jsonIssueObj.getInt("id"));
    }
    */
}

어떤 도움이나 조언이라도 깊이 감사드립니다. 궁극적으로 일련의 문제를 유지해야하는 경우 json을 조정할 수 있습니다.

isah

다른 사람들이 말했듯이 문제는 JSON입니다. "id": 00001 <-이것은 숫자입니다. 숫자는 JSON 표준에 따라 선행 0으로 시작할 수 없습니다. JSON을 제어하는 ​​경우 조정해야합니다.

그렇지 않은 경우 org.json.simple https://mvnrepository.com/artifact/com.googlecode.json-simple/json-simple 과 같은 덜 엄격한 파서를 사용할 수 있습니다 . 코드는 귀하의 것과 동일하며org.json.simple

try {   ...
        JSONObject rootJSON = (JSONObject) new JSONParser().parse(jsonString);
        JSONArray dataList = (JSONArray) rootJSON.get("data");
        for(Object projectObj: dataList.toArray()){
            JSONObject project = (JSONObject)projectObj;
            JSONArray issueList = (JSONArray) project.get("issue");
            for(Object issueObj: issueList.toArray()){
                JSONObject issue = (JSONObject) issueObj;
                //do something with the issue
            }
        }
    } catch (ParseException e) {
        //do smth
        e.printStackTrace();
    }

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Logstash에서 중첩 된 JSON 문자열 구문 분석

중첩된 문자열화된 json 객체 구문 분석

form-urlencoded POST에 중첩 된 JSON 문자열 구문 분석

중첩 된 배열 문자열을 배열로 구문 분석

중첩 된 JSON을 원시 문자열로 구문 분석

중첩 된 json 데이터를 문자열로 구문 분석

중첩 된 JSON 문서에서 문자열을 dict로 구문 분석

Flutter에서 중첩된 배열로 Json을 구문 분석합니까?

Android에서 중첩 된 JSON 배열을 구문 분석하는 방법

Spark Streaming SQL에서 중첩 된 JSON 문자열 열 구문 분석

Golang의 중첩 된 JSON 개체에서 중첩 된 배열을 어떻게 구문 분석합니까?

Gson으로 구문 분석한 후 중첩된 JSON 배열을 SQLite에 삽입

중첩 된 자바 스크립트 배열 구문 분석

Dart - 중첩된 Json 배열 구문 분석

중첩 된 JSON 배열 객체를 통한 구문 분석 nodejs

Swift에서 중첩 JSON 배열 구문 분석

Android에서 JSON 중첩 배열 구문 분석

중첩 배열로 JSON 구문 분석

Pandas에서 중첩 된 구조화 된 JSON 구문 분석

URL에서 중첩 된 JSON을 구문 분석하고 Java를 사용하여 배열에서 값 추출

중첩 된 JSON 응답 자바 스크립트 구문 분석

iOS에서 배열 데이터 내부의 중첩 된 Json 개체를 구문 분석하는 방법

Angular.js를 사용하여 JSON에서 중첩 된 객체 배열 구문 분석

중첩 된 JSON 문제 구문 분석

중첩 배열에서 문자열로 배열 구문 분석

Dart에 중첩 된 객체 배열이있는 JSON을 구문 분석합니까?

Elixir-구조체에 대한 중첩 된 JSON 구문 분석

Circe Optics로 중첩 된 Json 배열을 구문 분석하는 방법

ImportJSON.gs는 중첩 된 JSON 배열을 구문 분석합니다.

TOP 리스트

  1. 1

    Ionic 2 로더가 적시에 표시되지 않음

  2. 2

    JSoup javax.net.ssl.SSLHandshakeException : <url>과 일치하는 주체 대체 DNS 이름이 없습니다.

  3. 3

    std :: regex의 일관성없는 동작

  4. 4

    Xcode10 유효성 검사 : 이미지에 투명성이 없지만 여전히 수락되지 않습니까?

  5. 5

    java.lang.UnsatisfiedLinkError : 지정된 모듈을 찾을 수 없습니다

  6. 6

    rclone으로 원격 디렉토리의 모든 파일을 삭제하는 방법은 무엇입니까?

  7. 7

    상황에 맞는 메뉴 색상

  8. 8

    SMTPException : 전송 연결에서 데이터를 읽을 수 없음 : net_io_connectionclosed

  9. 9

    정점 셰이더에서 카메라에서 개체까지의 XY 거리

  10. 10

    Windows cmd를 통해 Anaconda 환경에서 Python 스크립트 실행

  11. 11

    다음 컨트롤이 추가되었지만 사용할 수 없습니다.

  12. 12

    C #에서 'System.DBNull'형식의 개체를 'System.String'형식으로 캐스팅 할 수 없습니다.

  13. 13

    JNDI를 사용하여 Spring Boot에서 다중 데이터 소스 구성

  14. 14

    Cassandra에서 버전이 지정된 계층의 효율적인 모델링

  15. 15

    복사 / 붙여 넣기 비활성화

  16. 16

    Android Kotlin은 다른 활동에서 함수를 호출합니다.

  17. 17

    Google Play Console에서 '예기치 않은 오류가 발생했습니다. 나중에 다시 시도해주세요. (7100000)'오류를 수정하는 방법은 무엇입니까?

  18. 18

    SQL Server-현명한 데이터 문제 받기

  19. 19

    Seaborn에서 축 제목 숨기기

  20. 20

    ArrayBufferLike의 typescript 정의의 깊은 의미

  21. 21

    Kubernetes Horizontal Pod Autoscaler (HPA) 테스트

뜨겁다태그

보관