您的位置:首页 > Web前端 > JavaScript

JSON解析&JSON

2015-10-11 13:25 477 查看
JSONObject解析对象的类构造方法:|--JSONObject(Stringsource):把一个字符串映射成对应的JSONObject对象。|--JSONObject(Mapmap):把一个map集合映射成对应的JSONObject对象|--JSONObject():构造一个空的JSONObject对象|--JSONObject(Objectbean):把任意对象转变成json对象----bean必须定义在自己的文件中常用方法:|--get***(Stringname):根据name获得对应的值,如果不存在则抛出异常(***代表booleandoubleintlongstring)|--opt***(Stringname):根据name获得对应的值,如果不存在则返回null,0,false(***代表booleandoubleintlongstring)|--opt***(Stringname,***value):根据name获得对应的值,如果不存在则返回value(***代表booleandoubleintlongstring)|--put(Stringkey,***value):设置对象中的键值对,如果已经存在key则覆盖|--getJSONObject(Stringname):根据name获得对应的JSONObject对象|--getJSONArray(Stringname):根据name获得相应的JSONArray对象JSONArray解析数组的类构造方法:|--JSONArray(Collectioncollection):把集合映射成对应的JSONArray对象|--JSONArray(Stringsource):把字符串转成一个JSON对象常用方法:|--getJSONObject(intindex):根据对应的下标返回一个JSONObject对象|--getJSONArray(intindex):根据对应的下标返回一个JSONArray对象|--length():返回当前JSONArray里面对象的个数|--get|opt***():同上代码示意:解析字符串代码:
importjava.util.ArrayList;
importjava.util.List;
importorg.json.JSONArray;
importorg.json.JSONObject;
/**
*利用JSON解析
*
*@authorMixm
*@date2015年10月10日上午11:37:45
*/
publicclassTest02{
publicstaticvoidmain(String[]args)throwsException{
Stringsource="{'name':'Mixm','gender':'男','age':21,'hobby':[{'name':'basketball'},{'name':'football'}]}";
JSONObjectjObject=newJSONObject(source);
System.out.println(jObject);
Personp=newPerson();
p.setName(jObject.getString("name"));
p.setGender(jObject.getString("gender"));
p.setAge(jObject.getInt("age"));
JSONArrayjArray=jObject.getJSONArray("hobby");
Hobbyhobby=newHobby();
List<String>list=newArrayList<>();
for(inti=0;i<jArray.length();i++){
JSONObjectobj=jArray.getJSONObject(i);
list.add(obj.getString("name"));
}
hobby.setList(list);
p.setHobby(hobby);
System.out.println(p);
}
}
Person里自定义的属性:
privateStringname;
privateStringgender;
privateintage;
privateHobbyhobby;
Hobby类属性:
privateList<String>list;
解析网络上的JSON:1、先利用网络请求获得字符串2、解析字符串
importjava.io.BufferedReader;
importjava.io.InputStreamReader;
importjava.net.HttpURLConnection;
importjava.net.URL;
importjava.util.ArrayList;
importjava.util.List;
importorg.json.JSONArray;
importorg.json.JSONException;
importorg.json.JSONObject;
publicclassJSONParser{
publicstaticvoidmain(String[]args)throwsException{
Stringpath="http://api2.hichao.com/new_forum/status?ga/new_forum/status&forum_ids=&gv=72&gi=e4b6f3f836bdb59c&access_token=&gos=5.5.2&p=Galaxy+S2+-+4.1.1+-+API+16+-+480x800_1&gc=wandoujia&gn=mxyc_adr&gf=android&gs=";
JSONDjd=getData(path);
System.out.println(jd);
}
publicstaticJSONDgetData(Stringpath)throwsJSONException{
JSONObjectjsonObject1=newJSONObject(getJSON(path));
JSONDjd=newJSOND();
jd.setMessage(jsonObject1.getString("message"));
Datasdata=newDatas();
JSONObjectjsonObject2=jsonObject1.getJSONObject("data");
List<Item>list=newArrayList<>();
JSONArrayjArray=jsonObject2.getJSONArray("items");
for(inti=0;i<jArray.length();i++){
Itemitem=newItem();
JSONObjectjsonObject3=jArray.getJSONObject(i);
item.setCommentCount(jsonObject3.getString("commentCount"));
item.setId(jsonObject3.getString("id"));
item.setName(jsonObject3.getString("name"));
item.setOnline(jsonObject3.getString("online"));
item.setPicUrl(jsonObject3.getString("picUrl"));
item.setThreadCount(jsonObject3.getString("threadCount"));
list.add(item);
}
data.setList(list);
data.setAppApi(jsonObject2.getString("appApi"));
jd.setData(data);
returnjd;
}
publicstaticStringgetJSON(Stringpath){
URLurl;
Stringstr="";
try{
url=newURL(path);
HttpURLConnectionconnection=(HttpURLConnection)url.openConnection();
BufferedReaderbr=newBufferedReader(newInputStreamReader(connection.getInputStream()));
Stringtemp=null;
while((temp=br.readLine())!=null){
str+=temp;
temp=null;
}
}catch(Exceptione){
e.printStackTrace();
}
returnstr;
}
}
JSOND类定义的属性:
privateStringmessage;
privateDatasdatas;
Datas类定义的属性:
privateList<Item>list;
privateStringappApi;
Items类定义的属性:
privateStringname;
privateStringthreadCount;
privateStringcommentCount;
privateStringpicUrl;
privateStringonline;
privateStringid;
利用JSON类得到JSON字符串:1、使用JSONObject,对javabean和map生成
importjava.util.HashMap;
importjava.util.Map;
importorg.json.JSONObject;
publicclassCreateJson01{
publicstaticvoidmain(String[]args){
TrainInfoti=newTrainInfo("mixm","2012-10-01","forever","guess","never","closed");
JSONObjectjObject1=newJSONObject(ti);
System.out.println(jObject1);
Map<Integer,TrainInfo>maps=newHashMap<>();
maps.put(1,ti);
maps.put(2,ti);
maps.put(3,ti);
maps.put(4,ti);
JSONObjectjObject2=newJSONObject(maps);
System.out.println(jObject2);
}
}
2、使用JSONArray,对list集合生成
importjava.util.ArrayList;
importjava.util.List;
importorg.json.JSONArray;
importorg.json.JSONObject;
publicclassCreateJson02{
publicstaticvoidmain(String[]args){
TrainInfoti1=newTrainInfo("mixm1","2012-10-01","forever","guess","never","closed");
TrainInfoti2=newTrainInfo("mixm2","2013-10-01","forever","guess","never","closed");
TrainInfoti3=newTrainInfo("mixm3","2014-10-01","forever","guess","never","closed");
TrainInfoti4=newTrainInfo("mixm4","2015-10-01","forever","guess","never","closed");
JSONObjectjObject1=newJSONObject(ti1);
System.out.println(jObject1);
List<TrainInfo>list=newArrayList<>();
list.add(ti1);
list.add(ti2);
list.add(ti3);
list.add(ti4);
JSONArrayjObject2=newJSONArray(list);
System.out.println(jObject2);
}
}

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: