1. 程式人生 > >java解析複雜json:JSONObject 和 JSONArray的使用

java解析複雜json:JSONObject 和 JSONArray的使用

在正式解析之前,我們需要下載解析Json所需要的jar包,一共有7個。


下載地址如下:https://download.csdn.net/download/zai_xia/10374080

大家也可以自行找資源下載。

然後將這些Jar包 Build Path 進專案就好了。

特別注意:commons-collections這個jar包要用3.x版本的,不能用4.x版本;commons-lang這個jar包要用2.x版本的,不能用3.x版本的。

我們的目的是解析下面這樣的json內容:

{
  "data":{
"items":[
  {
    "itemstring":"手機",
    "itemcoord":{"x"
:0,"y":100,"width":40,"height":20}, } ], "session_id":"", }, "code":0, "message":"OK" }

程式碼如下:

package format;
import net.sf.json.*;

public class ResolveJson {

	public static void main(String[] args) {
		String json = "{\"data\":{\"items\":[{\"itemstring\":\"手機\",\"itemcoord\":{\"x\":0,\"y\":100,\"width\":40,\"height\":20},}],\"session_id\":\"\",},\"code\":0,\"message\":\"OK\"}";
		JSONObject jsonObject = JSONObject.fromObject(json);
		JSONObject data = jsonObject.getJSONObject("data");
		JSONArray items = jsonObject.getJSONObject("data").getJSONArray("items");
		JSONObject row = null;
		for(int i=0; i<items.size(); i++){
			row = items.getJSONObject(i);
			System.out.println("itemstring :" + row.get("itemstring"));
			JSONObject itemcoord = row.getJSONObject("itemcoord");
			System.out.println("x:" + itemcoord.get("x"));
			System.out.println("y:" + itemcoord.get("y"));
			System.out.println("width:" + itemcoord.get("width"));
			System.out.println("height:" + itemcoord.get("height"));
		}
		System.out.println("session_id:" + data.get("session_id"));
		System.out.println("code:" + jsonObject.get("code"));
		System.out.println("code:" + jsonObject.get("message"));
	}
}

執行結果:


其實解析過程就是將json看情況轉換成JSONObject物件或JSONArray陣列,再進行下一步處理,最終得到目的值。

相關推薦

java解析複雜jsonJSONObject JSONArray的使用

在正式解析之前,我們需要下載解析Json所需要的jar包,一共有7個。下載地址如下:https://download.csdn.net/download/zai_xia/10374080大家也可以自行找資源下載。然後將這些Jar包 Build Path 進專案就好了。特別注意

java解析複雜json資料

java如何解析複雜的json資料 關於json處理的包有好幾個,比如jackson、Gson、Fastjson。Gson是谷歌做的,功能強大;Fastjson是阿里巴巴做的,效能更快。具體用哪個,開心就好。我這裡兩個都沒用,用的是java的一個類庫—json-

fastjson對json字串JSONObjectJSONArray互相轉換操作示例

package com.tapt.instance; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObjec

Java基礎系列16使用JSONObjectJSONArray解析構造json字串

轉自:https://www.zifangsky.cn/561.html 一 介紹 在Java開發中,我們通常需要進行XML文件或JSON字串的構造和解析。當然在Java Web開發中有一些第三方外掛是可以自動完成Java物件和json之間的轉換的,比

復雜json解析jsonobjectjsonArray的使用

string art 發起人 姓名 create 記錄 instance param rtt String parameter = { success : 0, errorMsg : "錯誤消息", data : { total : "總

java json字串轉JSONObjectJSONArray以及取值

import net.sf.json.JSONArray;   import net.sf.json.JSONObject;   public class JsonTest {       public static void main(String[] args) {           Str

android 讀取JSON資料(遍歷JSONObjectJSONArray

private String getJson() { //jsonString中含有比如unicode編碼字元\u67ef的話,getString時自動會轉化為相應語言字元。 //從伺服器獲取的資料片段一般為以下格式 /*{"showid":"38f5ef6ae

java 解析複雜json字串

json資料 String parameter = { success : 0, errorMsg : "錯誤訊息", data : { total : "總記錄數", rows : [ {

JAVA-使用FastJson解析複雜JSON資料

FastJson解析JSON的核心就是把json資料直接轉換成物件,讓解析複雜的json資料變得非常簡單,較大的降低了出錯的可能性。 使用方法: 1.建立JSON資料物件,所有的json鍵值都使用key作為變數名,並且實現set,get函式。 下面試簡單的demo測試複雜的

後端java解析複雜巢狀json

其實不是很複雜 百度翻譯傳過來的json資料:{"from":"zh","to":"en","trans_result":[{"src":"高度600米","dst":"Height 600 meters"}]} 現在要取出dst對應的值:Height 600 meter

json字串轉換為JSONObjectJSONArray .

一.下載json 具體到http://www.json.org/上找java-json下載,並把其放到專案原始碼中,這樣就可以引用其類物件了 二.具體轉化過程 //JSONObject  String jsonMessage = "{\"語文\":\"88\",\"數學\":\"78\",\"計算機\":\

JSON物件中的JSONObjectJSONArray以及與Map、String、陣列的轉化

本文一句的寫作思路:由簡入繁 一、簡單模式 1、建立JSONObject物件 JSONObject json=new JSONObject();json.put("name", "小明");json.put("age", "10");System.out.println(json.toString());

java使用jackson解析複雜json字串

為什麼要用 jackson jackson 憑藉其簡潔的語法、高效的處理速度、豐富的功能、清晰的文件等眾多優勢,受到廣大開發者的熱愛,成為了java程式設計師處理json資料的不二選擇。 1 實戰需求 在電商專案中,訂單物流查詢模組,需要接入多方快遞 API

使用Memcached改進Java企業級應用性能架構設置

利用 簡單的 數據 ref 壓縮文件 查找 停止 font tran Memcached由Danga Interactive開發。用來提升LiveJournal.com站點性能。Memcached分布式架構支持眾多的社交網絡應用,Twitter、Facebook還有Wi

JSONObjectJSONArray

content arr title tint string huang ets 般的 bject 一、JSONObject和JSONArray的數據表示形式 JSONObject的數據是用 { } 來表示的, 例如: { "id" : "123", "

java入門必學HTMLCSS

java ;入門 ; html; css Java開發已經悄無聲息的走進我們的生活中,無論是手機軟件、手機Java遊戲還是電腦軟件等,只要你使用到電子產品就會碰到和Java有關的東西,更多的企業正采用Java語言開發網站,也吸引了好多誌同道合的朋友開始加入Java開發的行列。 我們知道在

java 進階一代理動態代理

實現 public rgs tostring 開源項目 body llb ack code 靜態代理:   定義頂級接口:Iservice //目標類和代理類都實現該接口 public interface Iservice { public String serv

Java基礎 實驗二物件

1.實驗目的 掌握類的宣告、物件的建立、方法的定義和呼叫、建構函式的使用。 2.實驗內容 1)定義一個表示學生資訊的類Student,要求如下: ① 類Student的成員變數:       sNO 表示學號;      

Android Retrofit2框架的使用,以及解析複雜Json(其實也不算太複雜

  Retrofit是Square公司的開源專案,是基於OKHttp進行的應用層封裝 Retrofit官方文件:http://square.github.io/retrofit/ Retrofit GitHub地址:https://github.com/square/retro

[fastjson] - fastjson中 JSONObject JSONArray

/** * 對jsonObject物件進行key的獲取 * @param jsonObject */ public ArrayList<String> jsonKeyRecursion(JSONObject jsonObject,ArrayL