Here you can find the source of splitToTopLevelJsonObjects(String s)
public static List<String> splitToTopLevelJsonObjects(String s)
//package com.java2s; /*/*from w w w. j ava 2 s .com*/ * Copyright (C) 2016 Edmund Klaus * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import java.util.ArrayList; import java.util.List; public class Main { public static List<String> splitToTopLevelJsonObjects(String s) { List<String> jsonObjects = new ArrayList<String>(1000000); int objectStartIndex = 0; int objectStart = 0; int objectEnd = 0; int length = s.length(); for (int i = 0; i < length; i++) { switch (s.charAt(i)) { case '{': if (objectStart == 0) { objectStartIndex = i; } objectStart++; break; case '}': objectEnd++; if (objectStart == objectEnd) { jsonObjects.add(s.substring(objectStartIndex, i + 1)); objectStart = 0; objectEnd = 0; } break; default: break; } } return jsonObjects; } }