1. 程式人生 > >java解析json字串,多層解析

java解析json字串,多層解析

json泛型如下

{
    "code": 1,
    "message": "查詢成功",
    "data": [
        {
            "type": 1,
            "question": "地層壓力與同井深的淡水靜液壓力之比稱為地層的()。",
            "answer": "1",
            "id": 1,
            "description": "題目描述",
            "answers": [
                {
                    "isCorrect": "1",
                    "answer_name": "A的選項內容"
                },
                {
                    "isCorrect": "0",
                    "answer_name": "B的選項內容"
                },
                {
                    "isCorrect": 0,
                    "answer_name": "C的選項內容"
                },
                {
                    "isCorect": "0",
                    "answer_name": "D的選項內容"
                }
            ]
        },
        {
            "type": 1,
            "question": "起鑽時,產生的抽吸壓力導致井底壓力()。",
            "answer": "1",
            "id": 1,
            "description": "題目描述",
            "answers": [
                {
                    "isCorrect": 1,
                    "answer_name": "A的選項內容"
                },
                {
                    "isCorrect": 0,
                    "answer_name": "B的選項內容"
                },
                {
                    "isCorrect": 0,
                    "answer_name": "C的選項內容"
                },
                {
                    "isCorrect": 0,
                    "answer_name": "D的選項內容"
                }
            ]
        }
    ]
}

匯入下面這幾個jar包

如果沒有可以到小編的資源中下載名叫json_jar  點選下載

commons-beanutils.jar

commons-collections.jar

commons-lang-2.6.jar

commons-logging-1.0.4.jar

ezmorph-1.0.6.jar

json-lib-2.4-jdk15.jar

java解析測試原始碼

import java.util.Iterator;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;


public class hhao {

	@SuppressWarnings("unchecked")
	public static void main(String[] args) {

		String jsonStr = "{\"code\":1,\"message\": \"查詢成功\",\"data\": [{\"type\": 1,\"question\": \"題目名稱題目名稱題目名稱題目1111111111111111111111111\",\"answer\": \"1\",\"id\":1,\"description\": \"題目描述\",\"answers\": [{\"isCorrect\": 1,\"answer_name\": \"A的選項內容\"},{\"isCorrect\": 0,\"answer_name\": \"B的選項內容\"},{\"isCorrect\": 0,\"answer_name\": \"C的選項內容\"},{\"isCorrect\": 0,\"answer_name\": \"D的選項內容\"}]},{\"type\": \"1\",\"question\": \"題目名稱題目名稱題目名稱2222222222222222222222222222\",\"answer\": \"1\",\"id\": 1,\"description\": \"題目描述\",\"answers\": [{\"isCorrect\": 1,\"answer_name\": \"A的選項內容\"},{\"isCorrect\": 0,\"answer_name\": \"B的選項內容\"},{\"isCorrect\": 0,\"answer_name\": \"C的選項內容\"},{\"isCorrect\": 0,\"answer_name\": \"D的選項內容\"}]}]}";
		JSONObject job = JSONObject.fromObject(jsonStr);
		System.out.println("------1----->"+job.toString());
		JSONArray jArray = job.getJSONArray("data");
		Iterator<JSONArray> itr = jArray.iterator();
		while (itr.hasNext()) {
			JSONObject temp = JSONObject.fromObject(itr.next());
			temp.getInt("id");
			temp.getInt("type");
			temp.getString("question");
			System.out.println("------2----->"+temp.toString());
			JSONArray janswers = temp.getJSONArray("answers");
			Iterator<JSONArray> ianswers = janswers.iterator();
			while (ianswers.hasNext()) {
				JSONObject tanswers = JSONObject.fromObject(ianswers.next());
				tanswers.getInt("isCorrect");
				tanswers.getString("answer_name");
				System.out.println("------3----->"+tanswers.toString());
			}
			
		}
	}

}