package com.indrajith; import java.util.ArrayList; import java.util.List; public class Main { public static void main(String[] args) { List<String> a= split("[\n" + "\t{\n" + "\t\t\"id\": \"0001\",\n" + "\t\t\"type\": \"donut\",\n" + "\t\t\"name\": \"Cake\",\n" + "\t\t\"ppu\": 0.55,\n" + "\t\t\"batters\":\n" + "\t\t\t{\n" + "\t\t\t\t\"batter\":\n" + "\t\t\t\t\t[\n" + "\t\t\t\t\t\t{ \"id\": \"1001\", \"type\": \"Regular\" },\n" + "\t\t\t\t\t\t{ \"id\": \"1002\", \"type\": \"Chocolate\" },\n" + "\t\t\t\t\t\t{ \"id\": \"1003\", \"type\": \"Blueberry\" },\n" + "\t\t\t\t\t\t{ \"id\": \"1004\", \"type\": \"Devil's Food\" }\n" + "\t\t\t\t\t]\n" + "\t\t\t},\n" + "\t\t\"topping\":\n" + "\t\t\t[\n" + "\t\t\t\t{ \"id\": \"5001\", \"type\": \"None\" },\n" + "\t\t\t\t{ \"id\": \"5002\", \"type\": \"Glazed\" },\n" + "\t\t\t\t{ \"id\": \"5005\", \"type\": \"Sugar\" },\n" + "\t\t\t\t{ \"id\": \"5007\", \"type\": \"Powdered Sugar\" },\n" + "\t\t\t\t{ \"id\": \"5006\", \"type\": \"Chocolate with Sprinkles\" },\n" + "\t\t\t\t{ \"id\": \"5003\", \"type\": \"Chocolate\" },\n" + "\t\t\t\t{ \"id\": \"5004\", \"type\": \"Maple\" }\n" + "\t\t\t]\n" + "\t},\n" + "\t{\n" + "\t\t\"id\": \"0002\",\n" + "\t\t\"type\": \"donut\",\n" + "\t\t\"name\": \"Raised\",\n" + "\t\t\"ppu\": 0.55,\n" + "\t\t\"batters\":\n" + "\t\t\t{\n" + "\t\t\t\t\"batter\":\n" + "\t\t\t\t\t[\n" + "\t\t\t\t\t\t{ \"id\": \"1001\", \"type\": \"Regular\" }\n" + "\t\t\t\t\t]\n" + "\t\t\t},\n" + "\t\t\"topping\":\n" + "\t\t\t[\n" + "\t\t\t\t{ \"id\": \"5001\", \"type\": \"None\" },\n" + "\t\t\t\t{ \"id\": \"5002\", \"type\": \"Glazed\" },\n" + "\t\t\t\t{ \"id\": \"5005\", \"type\": \"Sugar\" },\n" + "\t\t\t\t{ \"id\": \"5003\", \"type\": \"Chocolate\" },\n" + "\t\t\t\t{ \"id\": \"5004\", \"type\": \"Maple\" }\n" + "\t\t\t]\n" + "\t},\n" + "\t{\n" + "\t\t\"id\": \"0003\",\n" + "\t\t\"type\": \"donut\",\n" + "\t\t\"name\": \"Old Fashioned\",\n" + "\t\t\"ppu\": 0.55,\n" + "\t\t\"batters\":\n" + "\t\t\t{\n" + "\t\t\t\t\"batter\":\n" + "\t\t\t\t\t[\n" + "\t\t\t\t\t\t{ \"id\": \"1001\", \"type\": \"Regular\" },\n" + "\t\t\t\t\t\t{ \"id\": \"1002\", \"type\": \"Chocolate\" }\n" + "\t\t\t\t\t]\n" + "\t\t\t},\n" + "\t\t\"topping\":\n" + "\t\t\t[\n" + "\t\t\t\t{ \"id\": \"5001\", \"type\": \"None\" },\n" + "\t\t\t\t{ \"id\": \"5002\", \"type\": \"Glazed\" },\n" + "\t\t\t\t{ \"id\": \"5003\", \"type\": \"Chocolate\" },\n" + "\t\t\t\t{ \"id\": \"5004\", \"type\": \"Maple\" }\n" + "\t\t\t]\n" + "\t}\n" + "]","topping"); } private static List<String> split(String json,String field) { char startChar = '{'; char endChar = '}'; List<String> returnList = new ArrayList<>(); if (field != null && !field.isEmpty()) { json = json.split(field)[1]; } for (int i = 0; i < json.length(); i++) { if (json.charAt(i) == startChar) { int count = 0; for (int j = 0; j < json.length(); j++) { if (json.charAt(j) == startChar) { count++; } if (json.charAt(j) == startChar) { count--; } if(count==0){ returnList.add(json.substring(i,j+1)); i=j; break; } } } } return returnList; } }
Wednesday, February 17, 2016
Custom json parser to convert an array within an array to java.util.List of type String
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment