json转换成java对象示例
程序员文章站
2022-04-15 20:49:36
...
json字符串转Java对象有很多工具可以使用,下面的小例子只是我练手的
import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import com.jfinal.kit.JsonKit; public class JsonToJavaObject { public static void main(String[] args) { Object o1 = parse("{\"aa\":123,cc:[1,2,3,4,{cd:f,bb:234}]}"); System.out.println(JsonKit.toJson(o1)); } public static Object parse(String json){ if(json == null){ return null; } json = json.trim(); if("string".equals(typeof(json))){ return json; } if("map".equals(typeof(json))){ return parseMap(json); } if("list".equals(typeof(json))){ return parseList(json); } return null; } public static Map parseMap(String json){ if(!"map".equals(typeof(json))){ throw new RuntimeException("json 不是Map类型"); } Map r = new HashMap(); parseToken(r,json,null); return r; } public static List parseList(String json){ if(!"list".equals(typeof(json))){ throw new RuntimeException("json 不是list类型"); } List 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)){ return "map"; } } if('['==json.charAt(0)){ if(']'==json.charAt(json.length()-1)){ return "list"; } } return "string"; } private static void parseToken(Map r, String json,List r2) { boolean syh = true; //双引号 boolean dyh = true;//单引号 boolean dkh = true;//大括号 boolean zkh = true;//中括号 boolean isKey = true; StringBuffer key = new StringBuffer(); StringBuffer value = new StringBuffer(); for(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; continue; } if(syh&&dkh&&zkh)if(syh)if('\'' == item){ dyh = !dyh; continue; } if(dyh&&syh&&dkh&&zkh)if(r2==null)if(dyh)if(':'==item){ isKey = false; continue; } 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(); continue; } if(isKey){ key.append(item); }else{ value.append(item); } } if(!key.toString().trim().equals("")){ if(r != null){ if(value.toString().trim().equals(""))throw new RuntimeException("json 格式错误"); r.put(key.toString(), parse(value.toString())); } if(r2 != null){ r2.add(parse(key.toString())); } } } }
控制台输出
{"aa":"123","cc":["1","2","3","4",{"bb":"234","cd":"f"}]}
更多json转换成java对象示例相关文章请关注PHP中文网!
推荐阅读
-
JavaScript数组,JSON对象实现动态添加、修改、删除功能示例
-
前端js把json字符串转json对象(java对象转json对象命令)
-
前端js把json字符串转json对象(java对象转json对象命令)
-
java 读取excel文件转换成json格式的实例代码
-
Java 把json对象转成map键值对的方法
-
java Bean与json对象间的转换实例讲解
-
C#实现json格式转换成对象并更换key的方法
-
jQuery实现简单复制json对象和json对象集合操作示例
-
jQuery.parseJSON(json)将JSON字符串转换成js对象
-
Python使用jsonpath-rw模块处理Json对象操作示例