Stack Overflow archive
1 score

JSON Object should not add if it is repeated

score
1
question views
197
license
CC BY-SA 3.0

If I understand correctly, you want the output to be like the second JSON array in your question. Changing where you loop should do the trick:

java
Scanner input = new Scanner(System.in);
JSONArray finaljson = new JSONArray();

System.out.println("Enter Version Name");
String vName = input.next();
System.out.println("Enter Version Key");;
String vKey = input.next();
JSONObject root = new JSONObject();
if (!root.has("versionName")) {
    root.put("versionName", vName);
    root.put("versionKey", vKey);
}

JSONArray issue = new JSONArray();
for (int j = 0; j < 2; j++) {
    System.out.println("Enter Epic Name");
    String epicName = input.next();

    System.out.println("Enter Epic Key");
    String epicKey = input.next();
    JSONObject epicData = new JSONObject();
    epicData.put("epickKey", epicKey);
    epicData.put("epickName", epicName);
    issue.put(epicData);
}

root.put("issue", issue);
finaljson.put(root);

System.out.println("JSON DATA" + finaljson.toString());

I tested with the input you have. Here is the formatted JSON output:

json
[
    {
        "issue": [
            {
                "epickKey": "eky1",
                "epickName": "e1"
            },
            {
                "epickKey": "eky2",
                "epickName": "e2"
            }
        ],
        "versionName": "vkey1",
        "versionKey": "v1"
    }
]

Originally posted on Stack Overflow. Public user contributions are licensed under Creative Commons Attribution-ShareAlike.