
io.vertigo.ccc.console.JSonBeautifier Maven / Gradle / Ivy
The newest version!
/**
* vertigo - simple java starter
*
* Copyright (C) 2013, KleeGroup, [email protected] (http://www.kleegroup.com)
* KleeGroup, Centre d'affaire la Boursidiere - BP 159 - 92357 Le Plessis Robinson Cedex - France
*
* 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.
*/
package io.vertigo.ccc.console;
import java.util.Iterator;
import java.util.Map.Entry;
import com.google.gson.JsonElement;
/**
* @author pchretien
*/
final class JSonBeautifier {
String beautify(final JsonElement jsonElement) {
final StringBuilder sb = new StringBuilder();
beautify(sb, jsonElement, 0);
return sb.toString();
}
private static void appendCRLF(StringBuilder sb) {
sb.append("\r\n");
}
private static void appendSpaces(StringBuilder sb, int offset) {
for (int i = 0; i < offset; i++) {
sb.append(" ");
}
}
private static void beautify(final StringBuilder sb, final JsonElement jsonElement, final int inOffset) {
int offset = inOffset;
if (jsonElement.isJsonArray()) {
offset++;
for (Iterator it = jsonElement.getAsJsonArray().iterator(); it.hasNext();) {
//sb.append("- ");
beautify(sb, it.next(), offset);
}
offset--;
} else if (jsonElement.isJsonObject()) {
for (Entry entry : jsonElement.getAsJsonObject().entrySet()) {
appendSpaces(sb, offset);
sb.append(entry.getKey());
sb.append(" : ");
if (entry.getValue().isJsonPrimitive()) {
sb.append(entry.getValue());
appendCRLF(sb);
} else {
offset++;
appendCRLF(sb);
beautify(sb, entry.getValue(), offset);
offset--;
}
}
} else if (jsonElement.isJsonPrimitive()) {
// appendSpaces(sb, offset);
String s = jsonElement.toString();
if (s.startsWith("\"") && s.endsWith("\"")) {
sb.append(s.substring(1, s.length() - 1));
} else {
sb.append(s);
}
appendCRLF(sb);
} else {
sb.append("???");
//null
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy