Java XML JSON 数据解析
下面我们通过一段代码了解一下解析JSON格式数据的基本过程:
提示:使用JSON需要导入 JSON 相关的多个Jar文件
import net.sf.json.JSONObject; public class JsonUtil { public static void parseJson(String jsonStr){ //创建JSONObject 对象 JSONObject jsonobj = JSONObject.fromObject(jsonStr); //获得字符串属性 String name = jsonobj.optString("name"); String sex = jsonobj.optString("sex"); String phone = jsonobj.optString("phone"); //获得整数属性 int age = jsonobj.getInt("age"); //打印属性 System.out.println("name:"+ name ); System.out.println("sex:"+ sex ); System.out.println("phone:"+ phone ); System.out.println("age:"+ age ); } public static void main(String[] args) { //JSON 格式字符串 String jsons = "{'name':'Java',"+ "'sex':'men'," + "'phone':'12345678'," + "'age':'12'}" ; parseJson(jsons); } }
以上代码 演示了怎样解析JSON格式的数据. 如果一个JSON 对象中的某个属性是数组类型的,则需要用到JSONArray 类, 该类表示JSON 对象的数组. 获得数组类型的方法是getJSONArray() . 这个方法的返回值类型 是JSONArray . JSONArray 通过 potJSONObject 方法来获得数组中的每个JSON对象 .
下面通过一段代码 学习解析带有数组属性的JSON 格式数据.
import net.sf.json.JSONArray; import net.sf.json.JSONObject; public class JsonUtilWithArray { public static void parseJson(String jsonStr) { // 创建JSONObject 对象 JSONObject jsonobj = JSONObject.fromObject(jsonStr); // 获得字符串属性 String corp = jsonobj.getString("corp"); System.out.println("corp:" + corp); // 获得数组类型属性 JSONArray objs = jsonobj.getJSONArray("programmers"); // 循环获得数组中的每个元素 for (int i = 0; i < objs.size(); i++) { JSONObject jo = objs.optJSONObject(i); String firstName = jo.optString("firstName"); String lastName = jo.optString("lastName"); int age = jo.optInt("age"); // 打印属性 System.out.println("firstName:" + firstName + "\tlastName:" + lastName + "\tage:" + age); } } public static void main(String[] args) { String jsonStr = "{" + "'corp':'MicroSoft'," + "'programmers':" + "[" + "{'firstName':'Bell','lastName':'McLxin','age':33}," + "{'firstName':'Bell2','lastName':'McLxin2','age':23}," + "{'firstName':'Bell3','lastName':'McLxin3','age':13}" + "]" + "}"; parseJson(jsonStr); } }