title: Parsing nested json array in java
body: <p>I have json file in below format.</p>
  
  <pre><code>{
      "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
  }
  </code></pre>
  
  <p>Here "data" is array of projects, and within project attribute there is array of "issue".</p>
  
  <p>So far if I remove "issue" array, I am able to traverse the json to one level down in "data" attribute, If this json has "issue" array I get an error saying missing comma. </p>
  
  <pre><code>javax.json.stream.JsonParsingException: Invalid token=NUMBER at (line no=15, column no=14, offset=242) Expected tokens are: [COMMA]
  </code></pre>
  
  <p>Below is the code that I have right now. I have two problems with this, one is the error while reading if I place the "issue" attribute, and secondly a way to read the "issue" array and traverse all attributes within.</p>
  
  <pre><code>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"));
      }
      */
  }
  </code></pre>
  
  <p>Any help or pointers is deeply appreciated. I can tweak the json if its required ultimately I need to maintain an array of issues. </p>