Skip to content

Instantly share code, notes, and snippets.

@karanoshan
Created June 18, 2020 13:53
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save karanoshan/833d292133470720dd0fd210ea9d427e to your computer and use it in GitHub Desktop.
Save karanoshan/833d292133470720dd0fd210ea9d427e to your computer and use it in GitHub Desktop.
package com.onepoint;
import com.eclipsesource.json.JsonObject;
import com.fasterxml.jackson.core.JsonFactory;
import com.fasterxml.jackson.core.JsonGenerationException;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonToken;
import com.fasterxml.jackson.databind.JsonMappingException;
import java.io.File;
import java.io.IOException;
public class JSONObjectRecost {
public static void main(String[] args) {
int count = 0;
try (JsonParser jParser = new JsonFactory().createParser(new File("FilePath"));) {
if (jParser.nextToken() == JsonToken.START_ARRAY) {
while (jParser.nextToken() != JsonToken.END_ARRAY) {
StringBuilder s = new StringBuilder("{");
while (jParser.nextToken() != JsonToken.END_OBJECT) {
String fieldname = jParser.getCurrentName();
s = s.append("\"" + fieldname + "\"" + ":");
JsonToken jt = jParser.nextToken();
if (jt == JsonToken.START_ARRAY) {
s = s.append("[");
while (jt != JsonToken.END_ARRAY) {
jt = jParser.nextToken();
if(jt== JsonToken.START_OBJECT)
{
s = s.append(recursionObject(jParser));
}
else if(jt!=JsonToken.END_ARRAY)
{
s = s.append("\"" + jParser.getText() + "\",");
}
}
s = new StringBuilder(s.substring(0, s.length() - 1));
s = s.append("],");
}
else if (jt == JsonToken.START_OBJECT)
{
s = s.append(recursionObject(jParser));
}
else
{
s = s.append("\"" + jParser.getValueAsString() + "\",");
}
}
if (s.charAt(s.length() - 1) == ',') {
s = new StringBuilder(s.substring(0, s.length() - 1));
}
s = s.append("}\n");
System.out.println(JsonObject.readFrom(s.toString()).toString());
count++;
s = null;
}
}
} catch (JsonGenerationException e) {
e.printStackTrace();
} catch (JsonMappingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public static String recursionObject(JsonParser jParser) throws IOException {
StringBuilder s = new StringBuilder("{");
while (jParser.nextToken() != JsonToken.END_OBJECT) {
String fieldname = jParser.getCurrentName();
s = s.append("\"" + fieldname + "\"" + ":");
JsonToken jt = jParser.nextToken();
if (jt == JsonToken.START_ARRAY) {
s = s.append("[");
while (jt != JsonToken.END_ARRAY) {
jt = jParser.nextToken();
if(jt== JsonToken.START_OBJECT)
{
s = s.append(recursionObject(jParser));
}
else if(jt!=JsonToken.END_ARRAY)
{
s = s.append("\"" + jParser.getText() + "\",");
}
}
s = new StringBuilder(s.substring(0, s.length() - 1));
s = s.append("],");
}
else if (jt == JsonToken.START_OBJECT)
{
s = s.append(recursionObject(jParser));
}
else
{
s = s.append("\"" + jParser.getValueAsString() + "\",");
}
}
if (s.charAt(s.length() - 1) == ',') {
s = new StringBuilder(s.substring(0, s.length() - 1));
}
s = s.append("},");
return s.toString();
}
}
[{
"docId": "5",
"docType": "txt",
"docLang": ["en", "hin"],
"ABCD": [{
"city": "Mumbai"
}, "array2"],
"docAuthor": "Karan Oshan",
"docTitle": {
"Name": "Karan Oshan",
"age": [25, 35],
"address": [{
"city": "Mumbai"
}, {
"State": "Maharashtra"
}
],
"sex": {
"gender": "male"
}
},
"isParent": true,
"parentDocId": 1
},
{
"docId": "1",
"docType": "txt",
"docAuthor": "Miguel",
"docTitle": "OnePoint",
"isParent": false,
"parentDocId": 0
}
]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment