Hay muchas herramientas para usar para convertir la cadena JSON en objetos Java.
La copia del código es la siguiente:
import java.util.arrayList;
import java.util.hashmap;
import java.util.list;
import java.util.map;
import com.jfinal.kit.jsonkit;
clase pública JSontoJavaObject {
public static void main (string [] args) {
Objeto o1 = parse ("{/" aa/": 123, cc: [1,2,3,4, {cd: f, bb: 234}]}");
System.out.println (jsonkit.tojson (o1));
}
Public Objeto estático Parse (String JSON) {
if (json == null) {
regresar nulo;
}
json = json.trim ();
if ("string" .equals (typeof (json))) {
regresar json;
}
if ("map" .equals (typeof (json))) {
devolver ParsEmap (JSON);
}
if ("list" .equals (typeof (json))) {
Parselist de regreso (JSON);
}
regresar nulo;
}
Mapa estático público ParsEmap (String JSON) {
if (! "map" .equals (typeof (json))) {
tirar nueva runtimeException ("JSON no es un tipo de mapa");
}
Mapa r = nuevo hashmap ();
Parsetokeken (R, JSON, NULL);
regresar r;
}
Public Static List Parselist (String JSON) {
if (! "list" .equals (typeof (json))) {
tirar nueva runtimeException ("JSON no es un tipo de lista");
}
Lista r = new ArrayList ();
Parsetkoken (NULL, JSON, R);
regresar r;
}
public static string typeOf (string json) {
if (json.length () == 0) return "string";
if ('{' == json.charat (0)) {
if ('}' == json.charat (json.length ()-1)) {
devolver "mapa";
}
}
if ('[' == json.charat (0)) {
if (']' == json.charat (json.length ()-1)) {
devolver "lista";
}
}
devolver "cadena";
}
Private static void parsetoken (map r, string json, list r2) {
boolean syh = verdadero;
boolean dyh = true; // citas individuales
booleano dkh = true; // aparatos
booleano zkh = true; // soportes
boolean iskey = verdadero;
Key StringBuffer = new StringBuffer ();
Valor StringBuffer = new StringBuffer ();
para (int i = 1; i <json.length ()-1; i ++) {
Char item = json.charat (i);
if (dyh && syh && zkh) if ('{' == item || '}' == item) {
dkh =! dkh;
}
if (dyh && syh && dkh) if ('[' == item || ']' == item) {
zkh =! zkh;
}
if (dyh && dkh && zkh) if ('"' == item) {
syh =! syh;
continuar;
}
if (syh && dkh && zkh) if (syh) if ('/' '== item) {
dyh =! dyh;
continuar;
}
if (dyh && syh && dkh & zkh) if (r2 == null) if (dyh) if (':' == item) {
iskey = false;
continuar;
}
if (dyh && syh && dkh & zkh) if (',' == item) {
iskey = verdadero;
if (r! = null) {
R.put (Key.ToString (), Parse (value.ToString ()));
}
if (r2! = null) {
r2.Add (parse (key.toString ()));
}
key = new StringBuffer ();
valor = new StringBuffer ();
continuar;
}
if (iskey) {
key.append (elemento);
}demás{
value.append (elemento);
}
}
if (! Key.ToString (). Trim (). Equals ("")) {
if (r! = null) {
if (value.ToString (). Trim (). Equals ("")) Lanzar nueva runtimeException ("error de formato JSON");
R.put (Key.ToString (), Parse (value.ToString ()));
}
if (r2! = null) {
r2.Add (parse (key.toString ()));
}
}
}
}
Salida de consola
La copia del código es la siguiente:
{"aa": "123", "cc": ["1", "2", "3", "4", {"bb": "234", "cd": "f"}]}