publicstaticvoidjsonToBean(Stringdata){
try{
JSONArrayarray=newJSONArray(data);//将json字符串转成json数组
for(inti=0;i<array.length();i++){//循环json数组
JSONObjectob=(JSONObject)array.get(i);//得到json对象
Stringname=ob.getString(“name”);//name这里是列名称,获取json对象中列名为name的值
System.out.print(name);//输出name
}catch(JSONExceptione){
}
}
JSONArray基本用法详解
环境
commons-beanutils-1.8.3.jar
commons-collections-3.1.jar
commons-lang-2.6.jar
commons-logging-1.1.1.jar
ezmorph-1.0.6.jar
json-lib-2.4-jdk15.jar
API
JSONArray是一个有序的值序列。它的外部文本形式是一个用方括号括起来的字符串,用逗号分隔值。内部表单是具有索引的目标get和opt用于经过索引拜访值的element办法,以及用于增加或替换值的办法。的值能够是任何这些类型的:Boolean,JSONArray,JSONObject,Number,String,或JSONNullobject。
结构函数能够将JSON文本转换为Java目标。该toString办法转换为JSON文本。
甲get办法返回假如能够找到一个值,而且抛出反常假如不能找到。一个opt办法返回一个默认值,而不是抛出反常,所以是用于取得可选值是有用的。
泛型get()和opt()办法返回一个能够转换或查询类型的目标。还有一些类型get和opt办法能够为您进行类型查看和输入coersion。
toString办法生成的文本严格遵循JSON语法规则。结构者在他们承受的文本中更宽容:
额定的,(逗号)可能出现在结束括号之前。
null当有,(逗号)省略时,将插入该值。
字符串’能够引证(单引号)。
假如字符串不以引号或单引号开头,而且假如它们不包括前导或跟随空格,而且它们不包括任何这些字符{}[]/:,=;#,则底子不需要引证它们:假如它们看起来不像号,假如它们不是保留字true,false或null。
值能够用;(分号)和,(逗号)分隔。
数字能够具有0-(八进制)或0x-(十六进制)前缀。
运用斜杠,斜杠和散列约好编写的注释将被疏忽。
实现
简化的用户类:
packagecom.sshmobai;
importjava.util.Date;
publicclassUser{
privateStringusername;
privateStringpassword;
privateDatecreatedTime;
publicUser(){super();}
publicUser(Stringusername,Stringpassword){
super();
this.username=username;
this.password=password;
}
publicUser(Stringusername,Stringpassword,DatecreatedTime){
super();
this.username=username;
this.password=password;
this.createdTime=createdTime;
}
publicStringgetUsername(){
returnusername;
}
publicvoidsetUsername(Stringusername){
this.username=username;
}
publicStringgetPassword(){
returnpassword;
}
publicvoidsetPassword(Stringpassword){
this.password=password;
}
publicDategetCreatedTime(){
returncreatedTime;
}
publicvoidsetCreatedTime(DatecreatedTime){
this.createdTime=createdTime;
}
@Override
publicStringtoString(){
return”User[username=”+username+”,password=”+password+”,createdTime=”+createdTime+”]”;
}
}
测验1
Useruser=newUser(“ssh”,”mobai”,newDate());
System.out.println(user);
System.out.println(JSONObject.fromObject(user).toString());
成果1
User[username=ssh,password=mobai,createdTime=MonJul3016:30:41CST2018]
{“createdTime”:{“date”:30,”day”:1,”hours”:16,”minutes”:30,”month”:6,”seconds”:41,”time”:1532939441331,”timezoneOffset”:-480,”year”:118},”password”:”mobai”,”username”:”ssh”}
测验2
Useruser=newUser(“ssh”,”mobai”,newDate());
System.out.println(user);
JsonConfigconfig=newJsonConfig();
config.registerJsonValueProcessor(Date.class,newJsonValueProcessor(){
//自定义日期格式
SimpleDateFormatsimpleDateFormat=newSimpleDateFormat(“yyyy-MM-ddHH:mm:ss”);
@Override
/**
*处理单个Date目标
*/
publicObjectprocessObjectValue(StringpropertyName,Objectdate,JsonConfigconfig){
returnsimpleDateFormat.format(date);
}
@Override
/**
*处理数组中的Date目标
*/
publicObjectprocessArrayValue(Objectdate,JsonConfigconfig){
returnsimpleDateFormat.format(date);
}
});
System.out.println(JSONObject.fromObject(user,config).toString());
成果2
User[username=ssh,password=mobai,createdTime=MonJul3016:35:41CST2018]
{“createdTime”:”2018-07-3016:35:41″,”password”:”mobai”,”username”:”ssh”}
测验3
Useruser=newUser(“ssh”,”mobai”,newDate());
System.out.println(user);
JsonConfigconfig=newJsonConfig();
config.setExcludes(newString[]{“password”});
System.out.println(JSONObject.fromObject(user,config).toString());
成果3
User[username=ssh,password=mobai,createdTime=MonJul3016:39:28CST2018]
{“createdTime”:{“date”:30,”day”:1,”hours”:16,”minutes”:39,”month”:6,”seconds”:28,”time”:1532939968378,”timezoneOffset”:-480,”year”:118},”username”:”ssh”}