package com.influxdb.json;
import java.util.Arrays;
import java.util.List;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
public class ParseNestedJson {
public static void main(String[] args) {
try {
String jsonString="[{\"statement_id\":0,\"series\":[{\"name\":\"sampleMeasurement1\",\"columns\":[\"time\",\"disk_type\",\"field1\",\"field2\",\"field3\",\"field4\",\"hostname\"],\"values\":[[\"2018-02-28T09:47:21.699Z\",null,12212,22.44,\"thisIsString\",false,\"server001\"],[\"2018-02-28T09:47:21.729Z\",\"HDD\",112,21.44,\"thisIsString1\",true,null],[\"2018-02-28T09:47:21.763Z\",null,12212,22.44,\"thisIsString\",false,\"server001\"],[\"2018-02-28T09:47:21.797Z\",\"HDD\",112,21.44,\"thisIsString1\",true,null]]}]}]";
/**
* create the json array from String
*/
JSONArray jsonRules = new JSONArray(jsonString);
/**
* iterate over it
*/
JSONArray jarray=null;
for (int i=0; i<jsonRules.length();i++){
JSONObject obj = (JSONObject) jsonRules.get(i);
System.out.println("series:::"+obj.getJSONArray("series"));
jarray=obj.getJSONArray("series");
}
System.out.println("$$$$$$$$ COLUMNS $$$$$$$$");
for (int i=0; i<jarray.length();i++){
JSONObject obj = (JSONObject) jarray.get(i);
System.out.println("columns:::"+obj.getJSONArray("columns"));
int count=obj.getJSONArray("columns").length();
for (int j=0; j<count;j++){
System.out.println("columns(j):::"+obj.getJSONArray("columns").getString(j));
}
System.out.println("$$$$$$$$ VALUES $$$$$$$$");
System.out.println("values:::"+obj.getJSONArray("values"));
int cnt=obj.getJSONArray("values").length();
for (int j=0; j<cnt;j++){
System.out.println("values(j):::"+obj.getJSONArray("values").get(j));
JSONArray jarr=obj.getJSONArray("values");
/**
* System.out.println(jarr.get(j));
*/
parseSquareBracketJson(jarr.get(j).toString());
}
}
} catch (JSONException e){
e.printStackTrace();
}
}
public static void parseSquareBracketJson(String string) {
/**
* Remove square brackets
*/
string = string.substring(1, string.length()-1);
/**
* Remove qutation marks
*/
string.replaceAll("\"", "");
/**
* turn into array
*/
String[] array = string.split(",");
/**
* Turn into list
*/
List<String> list = Arrays.asList(array);
System.err.println(list);
/**
* list.forEach(x -> System.err.println(x));
*/
}
}