Es gibt viele Tools, mit denen JSON -String in Java -Objekte konvertiert werden kann.
Die Codekopie lautet wie folgt:
Import Java.util.ArrayList;
import Java.util.hashMap;
importieren java.util.list;
import Java.util.map;
import com.jfinal.kit.jsonkit;
öffentliche Klasse JSontojavaObject {
public static void main (String [] args) {
Objekt O1 = Parse ("{/" AA/": 123, CC: [1,2,3,4, {CD: f, BB: 234}]}");
System.out.println (jsonkit.tojson (O1));
}
öffentliches statisches Objekt analysieren (String json) {
if (json == null) {
null zurückkehren;
}
JSON = JSON.TRIM ();
if ("String" .Equals (Typof (json)) {
Rückkehr JSON;
}
if ("map" .equals (typeof (json))) {
return parSemap (JSON);
}
if ("list" .equals (typeof (json))) {
Rückkehr -Parselist (JSON);
}
null zurückkehren;
}
public static map psemap (String json) {
if (! "map" .equals (typeof (json))) {
Neue RunTimeException werfen ("JSON ist kein Kartentyp");
}
Karte r = neuer Hashmap ();
parsetoken (r, json, null);
return r;
}
öffentliche statische Liste Parselist (String JSON) {
if (! "liste" .equals (typeof (json))) {
Neue RunTimeException werfen ("JSON ist kein Listentyp");
}
Liste r = new ArrayList ();
parsetoken (null, json, r);
return r;
}
public static String typeof (String json) {
if (json.length () == 0) return "String";
if ('{' == json.charat (0)) {
if ('}' == json.charat (json.length ()-1)) {
zurück "Karte" zurückgeben;
}
}
if ('[' == json.charat (0)) {
if (']' == json.charat (json.length ()-1)) {
Rückgabe "Liste";
}
}
zurück "String";
}
private static void parsetoken (MAP R, String JSON, Liste R2) {
boolean syh = true;
booleschen dyh = true; // einzelne Zitate
boolean dkh = true; // Zahnspangen
boolean zkh = true; // Klammern
boolean iskey = true;
StringBuffer key = new StringBuffer ();
StringBuffer value = new StringBuffer ();
für (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;
weitermachen;
}
if (syh && dkh && zkh) if (syh) if ('/' '== item) {
dyh =! dyh;
weitermachen;
}
if (dyh && syh && dkh & zkh) if (r2 == null) if (dyh) if (':' == item) {
isKey = false;
weitermachen;
}
if (dyh && syh && dkh & zkh) if (',' == item) {
IsKey = wahr;
if (r! = null) {
R.put (Key.ToString (), Parse (value.toString ()));
}
if (r2! = null) {
r2.add (parse (key.tostring ()));
}
Key = new StringBuffer ();
value = new StringBuffer ();
weitermachen;
}
if (iskey) {
key.Append (item);
}anders{
Value.Append (Artikel);
}
}
if (! key.toString (). trim (). Equals ("")) {
if (r! = null) {
if (value.toString (). TRIM (). Equals ("")) werfen neue RunTimeException ("JSON -Formatfehler");
R.put (Key.ToString (), Parse (value.toString ()));
}
if (r2! = null) {
r2.add (parse (key.tostring ()));
}
}
}
}
Konsolenausgabe
Die Codekopie lautet wie folgt:
{"aa": "123", "cc": ["1", "2", "3", "4", {"Bb": "234", "CD": "F"}]}