public static String loadJson (String url) { StringBuilder json = new StringBuilder(); try { URL urlObject = new URL(url); URLConnection uc = urlObject.openConnection(); BufferedReader in = new BufferedReader(new InputStreamReader(uc.getInputStream())); String inputLine = null; while ( (inputLine = in.readLine()) != null) { json.append(inputLine); } in.close(); } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return json.toString(); }
但是仅仅得到的是整个JSON的字符串,只是对整个结果集的一个处理,那么如何获取其中的各个属性呢?这才是至关重要的....
4.解析Json数据获取各个属性...
下面就是获取每一个Json值,然后进行保存的一个过程...这里我采用JsonArray的方式,将Json数据转换成Json数组的形式...
当然我们也可以使用Google官方为我们提供了Gson..调用其中内部的方法就能够获取各个属性信息...不过需要使用到其他的jar...这里我就不进行介绍了...使用Gson只需要调用一些方法其实就能搞定了....大家可以百度...
package json; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import net.sf.json.JSONArray; import net.sf.json.JSONObject; public class Json { /** * @param args main(String[] args) { // TODO Auto-generated method stub //这是一段Json数据...比如说就通过URL获取到的... String json="{''user'':" + "[ " + "{''userid'':''1'' , ''username'':''darker'' , ''userpassword'':''49681888''}," + "{''userid'':''2'' , ''username'':''darker_1'' , ''userpassword'':''49681888''}," + "{''userid'':''3'' , ''username'':''darker_2'' , ''userpassword'':''49681888''} " + "]" + "}"; //s字符串包含着每个字段的所有属性... String s[]=new String[]{"userid","username","userpassword"}; //以集合的方式,将数据信息进行保存... List<Map<String, Object>>list=new ArrayList<Map<String,Object>>(); /** * * 网上有很多方式是JSONObject jsonObject=new JSONObject(json);的方式来初始化对象... * 但是这种方式在我使用的json-lib-2.4版本下会直接报错... * 因此使用了fromObject方法进行对象的初始化... * * */ JSONObject jsonObject=JSONObject.fromObject(json); try { //将Json数据转化成数组的形式...user就是整个数组名称... JSONArray array=jsonObject.getJSONArray("user"); for(int i=0;i<array.size();i++){ /** * 这里使用了optXXX方法...目的是避免发生异常.. * 如果我们使用getXXX方法的话,那么key值就必须存在...一旦不存在就会异常... * 因此使用了optXXX方法... * */ /** * 下面这个对象保存的是这些数据...对应不同的i值...数据也就不同... * i=0; * * {''userid'':''1'' , ''username'':''darker'' , ''userpassword'':''49681888''} * * i=1 * * {''userid'':''2'' , ''username'':''darker_1'' , ''userpassword'':''49681888''} * * 以此类推... * */ JSONObject object= (JSONObject) array.opt(i); Map<String, Object>map=new HashMap<String, Object>(); for(String str:s){ //循环遍历,把所有的值都保存在Map中 //把object的值进行保存... map.put(str, object.get(str)); } //最后使用List保存Map list.add(map); } } catch (Exception e) { // TODO: handle exception } } }
其实解析各个属性的思路还有很多,比如说我们获取到Json字符串之后,通过Java Bean进行转换...然后覆盖其中的toJsonString()方法...自然也可以获取到其中的各个属性...在实际的开发中Json数据有可能更加的复杂,但是我们只要根据具体数据进行具体分析,就能够从数据中获取各个属性,来完成更多的操作...
比如说更复杂的...我们想要获取rect1中的所对应的数据信息...