Il existe de nombreux outils à utiliser pour convertir la chaîne JSON en objets Java.
La copie de code est la suivante:
import java.util.arraylist;
import java.util.hashmap;
Importer java.util.list;
importation java.util.map;
import com.jfinal.kit.jsonkit;
classe publique jSontojavaObject {
public static void main (String [] args) {
Objet o1 = parse ("{/" aa / ": 123, cc: [1,2,3,4, {cd: f, bb: 234}]}");
System.out.println (jsonkit.tojson (O1));
}
Parse STATIC PARSE (String JSON) {
if (json == null) {
retourner null;
}
JSON = JSON.trim ();
if ("string" .equals (typeof (json))) {
retourner JSON;
}
if ("map" .equals (typeof (json))) {
Retour Paremap (JSON);
}
if ("list" .equals (typeof (json))) {
Retour Parselist (JSON);
}
retourner null;
}
MAP STATIQUE PUBLIQUE PARSEMAP (String JSON) {
if (! "map" .equals (typeof (json))) {
lancer un nouveau RuntimeException ("JSON n'est pas un type de carte");
}
Map r = new hashmap ();
Parsetoken (R, JSON, null);
retour R;
}
Liste statique publique Parselist (String JSON) {
if (! "list" .equals (typeof (json))) {
lancer un nouveau RuntimeException ("JSON n'est pas un type de liste");
}
List r = new ArrayList ();
Parsetoken (NULL, JSON, R);
retour R;
}
Type de chaîne statique publique (String JSON) {
if (json.length () == 0) renvoie "String";
if ('{' == JSON.Charat (0)) {
if ('}' == json.charat (json.length () - 1)) {
retourner "map";
}
}
if ('[' == JSON.Charat (0)) {
if (']' == json.charat (json.length () - 1)) {
retourner "liste";
}
}
return "String";
}
Parsetoken de void statique privé (map r, string json, liste r2) {
booléen syh = true;
booléen dyh = true; // citations simples
booléen dkh = true; //
Boolean zkh = true; // crochets
booléen iskey = true;
StringBuffer key = new StringBuffer ();
StringBuffer Value = new StringBuffer ();
pour (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;
continuer;
}
if (syh && dkh && zkh) if (syh) if ('/' '== item) {
dyh =! dyh;
continuer;
}
if (dyh && syh && dkh & zkh) if (r2 == null) if (dyh) if (':' == item) {
isKey = false;
continuer;
}
if (dyh && syh && dkh & zkh) if (',' == item) {
isKey = true;
if (r! = null) {
r.put (key.toString (), parse (value.toString ()));
}
if (r2! = null) {
r2.add (parse (key.toString ()));
}
key = new StringBuffer ();
Value = new StringBuffer ();
continuer;
}
if (isKey) {
key.append (item);
}autre{
value.append (item);
}
}
if (! key.toString (). Trim (). Equals ("")) {
if (r! = null) {
if (value.toString (). Trim (). Equals ("")) lancez new RuntimeException ("JSON Format Error");
r.put (key.toString (), parse (value.toString ()));
}
if (r2! = null) {
r2.add (parse (key.toString ()));
}
}
}
}
Sortie de la console
La copie de code est la suivante:
{"aa": "123", "cc": ["1", "2", "3", "4", {"bb": "234", "cd": "f"}]}