json转换成java对象示例
json字符串转Java对象有很多工具可以使用,下面的小例子只是我练手的
importjava.util.ArrayList;
importjava.util.HashMap;
importjava.util.List;
importjava.util.Map;
importcom.jfinal.kit.JsonKit;
publicclassJsonToJavaObject{
publicstaticvoidmain(String[]args){
Objecto1=parse("{\"aa\":123,cc:[1,2,3,4,{cd:f,bb:234}]}");
System.out.println(JsonKit.toJson(o1));
}
publicstaticObjectparse(Stringjson){
if(json==null){
returnnull;
}
json=json.trim();
if("string".equals(typeof(json))){
returnjson;
}
if("map".equals(typeof(json))){
returnparseMap(json);
}
if("list".equals(typeof(json))){
returnparseList(json);
}
returnnull;
}
publicstaticMapparseMap(Stringjson){
if(!"map".equals(typeof(json))){
thrownewRuntimeException("json不是Map类型");
}
Mapr=newHashMap();
parseToken(r,json,null);
returnr;
}
publicstaticListparseList(Stringjson){
if(!"list".equals(typeof(json))){
thrownewRuntimeException("json不是list类型");
}
Listr=newArrayList();
parseToken(null,json,r);
returnr;
}
publicstaticStringtypeof(Stringjson){
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";
}
privatestaticvoidparseToken(Mapr,Stringjson,Listr2){
booleansyh=true;//双引号
booleandyh=true;//单引号
booleandkh=true;//大括号
booleanzkh=true;//中括号
booleanisKey=true;
StringBufferkey=newStringBuffer();
StringBuffervalue=newStringBuffer();
for(inti=1;i<json.length()-1;i++){
charitem=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=newStringBuffer();
value=newStringBuffer();
continue;
}
if(isKey){
key.append(item);
}else{
value.append(item);
}
}
if(!key.toString().trim().equals("")){
if(r!=null){
if(value.toString().trim().equals(""))thrownewRuntimeException("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"}]}
相关文章
- jsonObject转map_java 对象转map
- java json对象转map_java引用对象
- java对象组声明_如何在Java中声明对象数组?
- java工具类-Java对象转换成Map
- java怎么用_如何使用Java编写程序
- java 生成xml dom4j_Java生成xml——DOM4J生成
- json转换对象失败_java对象转json字符串
- 【说站】java中@Repeatable的注解
- java对象转换为json字符串_复杂json字符串转对象
- java json数组转json对象_json对象数组
- 字符串转json对象 java_js中对象转字符串的方法
- Java遍历json_java处理json数据
- java list 转json 字符串_Java之JSON字符串与List集合之间相互转换
- java将字符串转换为json对象的方法_java jsonobject转string
- java字符串转换为json对象6_Json对象与Json字符串的转化、JSON字符串与Java对象的转换…
- Java map转实体类_java实体类转json
- java json对象和json字符串互转的方法_将json字符串转换成对象
- Java list foreach_java的foreach
- Java的fastjson对象,JSON,字符串,map之间的互转
- Json转Java对象 – Java常见特殊符号 – 字符串
- 大数据必学Java基础(九十五):预编译语句对象
- java对象和json对象之间互相转换详解编程语言
- eeOracle放弃Java EE:梦想的终结(oracle放弃java)
- 处理使用Java操作Redis实现过期对象处理(redisjava过期)
- 使用Redis存储Java对象(redis存java对象)
- 如何在Linux系统下成功安装Java?(linux下安装java)
- 深入浅出 使用 Java 连接 Neo4j(java连接neo4j)
- MSSQL与Java的数据库连接实践(mssql连接java)
- Java 开发提升Oracle数据库性能(java开发oracle)
- [JAVA]十四种Java开发工具点评
- JSON数据转换成Java对象的方法