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 + "	lastName:"
					+ lastName + "	age:" + 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);
	}
}



原文地址:https://www.cnblogs.com/aikongmeng/p/3697421.html