java json 構造_json 構造和解析

目錄:

(1)引入jar包;

(2)json的構造;

(3)json的解析;

(4)遍歷未知key。

(1)java對json的處理,可借助org.json.jar.

org.json

json

20090211

(2)json的構造

//construct json and output it

public String constructJson() throws JSONException {

JSONObject map1 = new JSONObject();

map1.put("name", "張三");

map1.put("password", "123");

System.out.println("map1 --->" + map1);

JSONObject map2 = new JSONObject();

map2.put("name", "李四");

map2.put("password", "456");

System.out.println("map2 --->" + map2);

JSONArray list = new JSONArray();

list.put(map1);

list.put(map2);

System.out.println("jsonMembers --->" + list);

JSONObject json=new JSONObject();

json.put("users", list);

System.out.println("json --->" + json);

return json.toString();

}

public static void main(String args[]) throws Exception{

RoomTool rt = new RoomTool();

rt.constructJson();

}

輸出如下:

map1 --->{"password":"123","name":"張三"}

map2 --->{"password":"456","name":"李四"}

jsonMembers --->[{"password":"123","name":"張三"},{"password":"456","name":"李四"}]

json --->{"users":[{"password":"123","name":"張三"},{"password":"456","name":"李四"}]}

(3)json的解析

//construct json from String and resolve it.

public String jsonTest2() throws JSONException{

String jsonString=jsonTest();

JSONObject json= new JSONObject(jsonString);

JSONArray jsonArray=json.getJSONArray("users");

String loginNames="loginname list:";

for(int i=0;i

JSONObject user=(JSONObject) jsonArray.get(i);

String userName=(String) user.get("loginname");

if(i==jsonArray.length()-1){

loginNames+=userName;

}else{

loginNames+=userName+",";

}

}

System.out.println("loginNames --->" + loginNames);

return loginNames;

}

public static void main(String args[]) throws Exception{

RoomTool tool = new RoomTool();

tool.jsonTest2();

}

輸出如下:loginNames --->loginname list:zhangfan,zf

(4)遍歷未知key

public void parseJson(String jsonString) throws JSONException{

JSONObject json= new JSONObject(jsonString);

Iterator it = json.keys();

while(it.hasNext()){

String key = it.next().toString();

int values = Integer.parseInt((String)json.get(key));

System.out.println(key + "--->" + values);

}

}

public static void main(String args[]) throws Exception{

RoomTool tool = new RoomTool();

tool.parseJson("{\"1\":\"0\",\"2\":\"30\",\"3\":\"15\",\"4\":\"15\",\"5\":\"20\",\"6\":\"20\"}");

}

輸出:

1--->0

2--->30

3--->15

4--->15

5--->20

6--->20

一.Json對象與Json字符串的轉化

1.jQuery插件支持的轉換方式:

$.parseJSON( jsonstr ); //jQuery.parseJSON(jsonstr),可以將json字符串轉換成json對象

2.瀏覽器支持的轉換方式(Firefox,chrome,opera,safari,ie9,ie8)等瀏覽器:

JSON.stringify(obj)將JSON轉為字符串。JSON.parse(string)將字符串轉為JSON格式;

var a={"name":"tom","sex":"男","age":"24"};

var b='{"name":"Mike","sex":"女","age":"29"}';

var aToStr=JSON.stringify(a);

var bToObj=JSON.parse(b);

alert(typeof(aToStr));? //string

alert(typeof(bToObj));//object

3.Javascript支持的轉換方式:

eval('(' + jsonstr + ')'); //可以將json字符串轉換成json對象,注意需要在json字符外包裹一對小括號

注:ie8(兼容模式),ie7和ie6也可以使用eval()將字符串轉為JSON對象,但不推薦這些方式,這種方式不安全eval會執行json串中的表達式。

4.JSON官方的轉換方式:

http://www.json.org/提供了一個json.js,這樣ie8(兼容模式),ie7和ie6就可以支持JSON對象以及其stringify()和parse()方法;

可以在https://github.com/douglascrockford/JSON-js上獲取到這個js,一般現在用json2.js。

二、JSON?字符串?與?java?對象的轉換

1. 把java 對象列表轉換為json對象數組,并轉為字符串

JSONArray array =?JSONArray.fromObject(list);

String jsonstr = array.toString();

2. 把java對象轉換成json對象,并轉化為字符串

JSONObject object =?JSONObject.fromObject(user);

Log4jInit.ysulogger.debug(object.toString());

3.把JSON字符串轉換為JAVA 對象數組

JSONArray json = JSONArray.fromObject(userStr);//userStr是json字符串

List users= (List)JSONArray.toCollection(json, User.class);

4.把JSON字符串轉換為JAVA 對象

JSONObject jsonobject = JSONObject.fromObject(jsonStr);

User user= (User)JSONObject.toBean(object,User.class);

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/443075.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/443075.shtml
英文地址,請注明出處:http://en.pswp.cn/news/443075.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

java http 上傳文件_java利用httpClient實現后臺文件上傳請求

之前寫過基于html和js的文件上傳方法java 用springMVC 和HttpServletRequest 兩種實現文件上傳的方法和httpClient后臺執行普通post請求的文章java通過httpClient從接口請求數據入庫以及自動生成實體工具類,最近接到一個需求,需要用到后臺去調用遠程服務…

morse java_華威MORSE,華威數統那個比較好?

其實沒什么高下之分了。 畢竟大家都在一個系,上下課交作業都在一起。我個人覺得,數統要比morse更flexible一些。首先你要明白morse和數統課程上的區別在哪里:數統 大一必修數統大一必修共計84CATSmorse大一必修morse大一必修共計120CATS其實差的就是EC10…

java中 以下接口以鍵_java復習題

1.Java中的long類型占用()個字節。A、1B、2C、4D、82.以下關于繼承的敘述不正確的是()。A、在Java中類只允許單一繼承B、在Java中一個類只能實現一個接口C、在Java中一個類可以同時繼承一個類和實現一個接口D、在Java中接口允許多繼承3.4&…

Java游戲有易筋經_易筋經- JavaWeb-1

JavaScript一種直譯式腳本語言,是一種動態類型、弱類型、基于原型的語言,內置支持類型。它的解釋器被稱為JavaScript引擎,為瀏覽器的一部分,廣泛用于客戶端的腳本語言組成部分:ECMAScript:js基礎語法(規定 關鍵字 運算符 語句 函數…

java導出hbase表數據_通用MapReduce程序復制HBase表數據

編寫MR程序,讓其可以適合大部分的HBase表數據導入到HBase表數據。其中包括可以設置版本數、可以設置輸入表的列導入設置(選取其中某幾列)、可以設置輸出表的列導出設置(選取其中某幾列)。原始表test1數據如下:每個row key都有兩個版本的數據,…

java雙語試卷_Java程序設計基礎(雙語)試題題目及答案,課程2021最新期末考試題庫,章節測驗答案...

若二項式(x+13x)n的展開式中含3x的項是第三項,則n的值是______.(x2+1ax)6(a>0)的展開式中常數項是15,那么展開式中所有項系數和是______.(x2+1ax)6(a>0)的展開式中常數項…

java服務器和linux_在Linux下開一個Java服務器(使用CatServer Pro)

引言Linux開服具有快速,高效,性能等特點,而Windows雖然簡單,但是不具備Linux良好的性能。本教程就說明一下簡單的Linux開服方式(需要教程的人,如果你學會后,請無償幫助更多的人。)服務器準備首先。先準備一…

java中js九個隱含對象_第九章 JSP標簽——《跟我學Shiro》

Shiro提供了JSTL標簽用于在JSP/GSP頁面進行權限控制,如根據登錄用戶顯示相應的頁面按鈕。導入標簽庫標簽庫定義在shiro-web.jar包下的META-INF/shiro.tld中定義。guest標簽歡迎游客訪問,登錄用戶沒有身份驗證時顯示相應信息,即游客訪問信息。…

java中jsp標準動作_JavaBean和jsp標準動作

一.JavaBean 1.理解:可以重用的java類 2.分類 1)封裝數據的bean(相當于實體類) 2)封裝業務的bean(一般就是實現增刪改查) 3.注意: 1)封裝數據的bean一般要滿足如下兩個條件 1.implements Serializable:實現序列化接口 2.擁有一個無參的public…

我的世界java版游戲崩潰_我的世界全攻略之-游戲崩潰的解決方法

我的世界崩潰怎么辦?下面吾愛網小編給大家帶來我的世界無法正常啟動的解決方法,需要的朋友可以參考下。我的世界作為許多玩家都十分喜愛的模擬經營沙盤類游戲,經常有玩家反映在玩我的世界的時候,游戲總是會出現崩潰或者無法啟動的情況,玩家在遇到的時候不知道怎么辦…

手寫實現java中的trim_JS中字符串trim()使用示例

示例一:測試JS擴展方法// 合并多個空白為一個空白String.prototype.ResetBlank function() { //對字符串擴展var regEx /\s/g;return this.replace(regEx, );};window.onload function(){var str "你 在他想還好嗎?";alert(str);str str.ResetBlan…

java excil表格開發_JAVA導出Excel電子表格的方法

JAVA導出Excel電子表格的方法package com.qingruxu.excel;import java.io.File;import java.io.IOException;import java.net.URL;import jxl.Sheet;import jxl.Workbook;import jxl.format.Border;import jxl.read.biff.BiffException;import jxl.write.Blank;import jxl.writ…

vue3 新項目 - 搭建路由router

創建router/index 文件 main.ts 安裝 router 然后 在 app下面 去 設置 路由出口

java json中的注釋_如何使用Java中的@Expose注釋從JSON中排除字段?

Gson Expose批注可用于標記要公開或不公開(串行化或反序列化)的字段。 expose注釋可以取兩個參數和每個參數是可以采取任一值的布爾真或假。為了使GSON對Expose批注做出反應,我們必須使用GsonBuilder類創建一個Gson實例,并需要調用excludeFieldsWithoutE…

java 屏蔽郵箱_使用javamail發送郵件的時候如何阻止附件內容輸出到控制臺

我在使用JavaMail發送帶附件的郵件時候,每次到了Transport.sendMessage()這一步,控制臺就會輸出附件內容,請問如何設置可以取消輸出呢?public void sendFileAttachedMail(String fromMail, String toMail, String fromMailPwd, St…

java如何獲得相反的顏色_javascript – 如何根據當前顏色生成相反的顏色?

更新:GitHub上的生產就緒代碼.我就是這樣做的:>將HEX轉換為RGB>反轉R,G和B組件>將每個組件轉換回HEX>用零和輸出填充每個組件.function invertColor(hex) {if (hex.indexOf(#) 0) {hex hex.slice(1);}// convert 3-digit hex to 6-digits.…

php暫停循環,在特定數量的遞歸循環后,PHP停止執行

我遇到的問題很奇怪。 在執行遞歸循環時會發生這種情況。 使用for循環或任何其他迭代執行相同任務時,不會發生這種情況。在?21 000次以下遞歸調用函數時,一切正常。 超過此數字時會出現問題。我的工作代碼:foo();function foo($i 1) {if ($…

thinkphp3 php jwt,thinkphp框架使用JWTtoken的方法詳解

本文實例講述了thinkphp框架使用JWTtoken的方法。分享給大家供大家參考,具體如下:簡介一:JWT介紹:全稱JSON Web Token,基于JSON的開放標準((RFC 7519) ,以token的方式代替傳統的Cookie-Session模式&#xf…

php 64位編碼解碼,php base64 編碼和解碼

/*** 自定義規則方式編碼和解碼**/public function test_changinttoStr () {$intvalue1 1232344234;$intStr ;$str "Y 9 L F k g y 5 R o v i x I 1 a O f 8 U h d s 3 r 4 D M p l Q Z J X P q e b E 0 W S j B n 7 w V z m N 2 G c 6 T H C A K u t";$seq expl…

matlab能力處理,書+程序《MATLAB圖像處理:能力提高與應用案例》趙小川

【實例簡介】MATLAB圖像處理能力提高與應用案例 [趙小川 編著] 2014年版,書程序(僅供學習)【實例截圖】【核心代碼】c3c59b5e-16c1-4bda-938e-8fcfb2ff870d└── 《MATLAB圖像處理:能力提高與應用案例》書程序├── 1.1 圖像多分辨率金字塔.zip├── 1.2圖像的矩…