導航:首頁 > 編程語言 > java復雜json

java復雜json

發布時間:2022-08-31 06:05:17

1. 非常復雜的一個json串,怎麼轉成java對象

1、可藉助開源組件FastJson或者Jackson。

2、自己動手

a、使用反射獲取對象所有的setter方法以及對於所需的參數類型用map對應

b、循環上訴集合,依次使用反射調用set方法,並使用正則匹配json串中的值,可以使用class.getDeclareFileds();獲取變數名,注意若參數是class類型需要反射為實例後填充,class類型匹配json串是也需要注意,因為可能存在嵌套對象中變數名一致的情況。展示部分代碼如下:

3、綜合分析還是建議使用中間件來進行映射。可參考Jackson示例

2. Java實現JSON多層遍歷

JSONObject jsonObject = new JSONObject(s);
然後用Iterator迭代器遍歷取值,建議用反射機制解析到封裝好的對象中
JSONObject jsonObject = new JSONObject(jsonString);
Iterator iterator = jsonObject.keys();while(iterator.hasNext()){
key = (String) iterator.next();
value = jsonObject.getString(key);
}

3. java開發,json是干什麼的

json其實就是封裝了一種數據格式,它使用了自己定義的標准。主要用來在伺服器和客戶端的瀏覽器進行數據交換。因為我們常用的表單形式提交數據,有諸多的不便,json解決了一些問題。

4. java axis2 怎麼使用 返回json復雜對象

gson 根據BEAN,生成json字元串。

5. 用java怎麼解析復雜的JSON

json-lib-2.4-jdk15.jar 這個包還另需一下幾個包。

jakarta commons-lang 2.5
jakarta commons-beanutils 1.8.0
jakarta commons-collections 3.2.1
jakarta commons-logging 1.1.1
ezmorph 1.0.6

把上邊的json定義為一個字元串 str,建議不要直接用還是自己動手寫寫。這樣比較容易掌握方法。

JSONObject ob=JSONObject.fromObject(str);
Object success=ob.get("success");
Object errorMsg=ob.get("errorMsg");
System.out.println(success);
System.out.println(errorMsg);
JSONObject data=ob.getJSONObject("data");
Object total=data.get("total");
System.out.println(total);
JSONArray array=data.getJSONArray("rows");
JSONObject rows=null;
for(int i=0;i<array.size();i++){
rows=array.getJSONObject(i);
Object id=rows.get("id");
System.out.println(id);
Object workName=rows.get("workName");
System.out.println(workName);
Object assigneeName=rows.get("assigneeName");
System.out.println(assigneeName);
Object name=rows.get("name");
System.out.println(name);
Object processInstanceInitiatorName=rows.get("processInstanceInitiatorName");
System.out.println(processInstanceInitiatorName);
Object processInstanceStartTime=rows.get("processInstanceStartTime");
System.out.println(processInstanceStartTime);
Object createTime=rows.get("createTime");
System.out.println(createTime);
Object eDate=rows.get("eDate");
System.out.println(eDate);
}

6. java 如何解析JSON

一、JSON(JavaScriptObjectNotation)一種簡單的數據格式,比xml更輕巧。Json建構於兩種結構:1、「名稱/值」對的集合(Acollectionofname/valuepairs)。不同的語言中,它被理解為對象(object),紀錄(record),結構(struct),字典(dictionary),哈希表(hashtable),有鍵列表(keyedlist),或者關聯數組(associativearray)。如:{「name」:」jackson」,「age」:100}2、值的有序列表(Anorderedlistofvalues)。在大部分語言中,它被理解為數組(array)如:{「students」:[{「name」:」jackson」,「age」:100},{「name」:」michael」,」age」:51}]}二、java解析JSON步驟A、伺服器端將數據轉換成json字元串首先、伺服器端項目要導入json的jar包和json所依賴的jar包至builtPath路徑下(這些可以到JSON-lib官網下載:http://json-lib.sourceforge.net/)然後將數據轉為json字元串,核心函數是:(Stringkey,Objectvalue){JSONObjectjsonObject=newJSONObject();jsonObject.put(key,value);returnjsonObject.toString();}B、客戶端將json字元串轉換為相應的javaBean1、客戶端獲取json字元串(因為android項目中已經集成了json的jar包所以這里無需導入)publicclassHttpUtil{(StringurlStr){try{//獲取HttpURLConnection連接對象URLurl=newURL(urlStr);HttpURLConnectionhttpConn=(HttpURLConnection)url.openConnection();//設置連接屬性httpConn.setConnectTimeout(3000);httpConn.setDoInput(true);httpConn.setRequestMethod("GET");//獲取相應碼intrespCode=httpConn.getResponseCode();if(respCode==200){returnConvertStream2Json(httpConn.getInputStream());}}catch(MalformedURLExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}catch(IOExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}return"";}(InputStreaminputStream){StringjsonStr="";//ByteArrayOutputStream相當於內存輸出流ByteArrayOutputStreamout=newByteArrayOutputStream();byte[]buffer=newbyte[1024];intlen=0;//將輸入流轉移到內存輸出流中try{while((len=inputStream.read(buffer,0,buffer.length))!=-1){out.write(buffer,0,len);}//將內存流轉換為字元串jsonStr=newString(out.toByteArray());}catch(IOExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}returnjsonStr;}}2、獲取(StringjsonStr){Personperson=newPerson();try{//將json字元串轉換為json對象JSONObjectjsonObj=newJSONObject(jsonStr);//得到指定jsonkey對象的value對象JSONObjectpersonObj=jsonObj.getJSONObject("person");//獲取之對象的所有屬性person.setId(personObj.getInt("id"));person.setName(personObj.getString("name"));person.setAddress(personObj.getString("address"));}catch(JSONExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}returnperson;}publicstaticListgetPersons(StringjsonStr){Listlist=newArrayList();JSONObjectjsonObj;try{//將json字元串轉換為json對象jsonObj=newJSONObject(jsonStr);//得到指定jsonkey對象的value對象JSONArraypersonList=jsonObj.getJSONArray("persons");//遍歷jsonArrayfor(inti=0;i

7. 在 java web開發中怎麼使用json

一、JSON建構有兩種結構:

json簡單說就是javascript中的對象和數組,所以這兩種結構就是對象和數組2種結構,通過這兩種結構可以表示各種復雜的結構

1、對象:對象在js中表示為「{}」括起來的內容,數據結構為 {key:value,key:value,...}的鍵值對的結構,在面向對象的語言中,key為對象的屬性,value為對應的屬性值,所以很容易理解,取值方法為 對象.key 獲取屬性值,這個屬性值的類型可以是 數字、字元串、數組、對象幾種。在Java中就是一種Map結構。

2、數組:數組在js中是中括弧「[]」擴起來的內容,數據結構為 ["java","javascript","vb",...],取值方式和所有語言中一樣,使用索引獲取,欄位值的類型可以是 數字、字元串、數組、對象幾種。在Java中是一種list結構。

經過對象、數組2種結構就可以組合成復雜的數據結構了。

二、Json in Javascript

使用Json語法創建對象

var people = {"name":"jack","sex":"mail"};

可以通過這種語法創建json對象,用「{}」括起來,用「,」隔開key:value

使用Json語法創建數組

var arr =[value1,value2...];

一個包含多個people的數組 peoples = [{"name":"jack","sex":"mail"},

"name":"lily","sex":"femail"};

Json數組可以通過這種語法創建,用"[]"括起來,數組元素之間用「,」分隔開,下面是這種語法的示意圖:

在使用Json格式字元串與伺服器交互時候,可以利用Json擴展的方法將字元串轉換成一個JavaScript對象,或者將一個對象轉換成Json格式字元串。不過先要登錄http://www.json.org下載Json2.js文件。引入該包後,js對象直接用toJSONString()裝換為字元串格式,字元串可以用parseJSON()轉換成js對象。

訪問數據

只需用點號表示法來表示數組元素。所以,要想訪問 上面peoples列表的第一個條目的名字,只需在 JavaScript 中使用下面這樣的代碼:

peoples[0].name

利用這樣的語法,可以處理任何 JSON 格式的數據,而不需要使用任何額外的 JavaScript 工具包或 API。

修改數據

正如可以用點號和方括弧訪問數據,也可以按照同樣的方式輕松地修改數據:

peoples[0].name = "Rachmaninov";

在將字元串轉換為 JavaScript 對象之後,就可以像這樣修改變數中的數據。

8. 怎麼用java對象表示復雜的json

student.java實體類

package com.cloud.test;
public class Student{
private int id;
private String name;
private int age;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String toString(){
return this.id+";"+this.name+";"+this.age;
}
}

tb.java

package com.cloud.test;
import net.sf.json.JSONObject;
public class tb {
public static void main(String[] args) {
String json = "{id:'101',name:'你好',age:'22'}";
Student stu = new Student();
JSONObject jsonObject = JSONObject.fromObject(json);
stu = (Student) JSONObject.toBean(jsonObject, Student.class);
//101;你好;22
System.out.println(stu);
}
}

9. 怎樣利用java生成json復雜對象

假設你後台中查出一個結果集List,你就可以通過如下方法實現:
JSONObject json = new JSONObject();
json.accumulate("list", list);
response.setCharacterEncoding("UTF-8");
response.setHeader("Cache-Control", "no-cache");
response.setContentType("text/html;charset=UTF-8");
response.getWriter().print(json);
response.getWriter().close();
這樣生成的json對象就可以傳到頁面上了,在頁面中你可以通過如下方式取值:
$.ajax(
url:"",
type:"post",
data:{"param1":param1},
success:function(data){
//此處就是你取值的方法

var list = data.list;
}
);

閱讀全文

與java復雜json相關的資料

熱點內容
程序員被公司勸退 瀏覽:523
java三子棋 瀏覽:690
加密空間怎麼強制進入 瀏覽:343
ug分割曲線命令 瀏覽:209
學碼思程序員 瀏覽:609
自考雲學習app為什麼登不上 瀏覽:406
domcer伺服器晝夜更替怎麼搞 瀏覽:434
plc和單片機哪個好 瀏覽:535
帝國神話組建雲伺服器 瀏覽:827
鄧散木pdf 瀏覽:199
方舟怎麼直連伺服器圖片教程 瀏覽:563
假相pdf 瀏覽:336
找對象找程序員怎麼找 瀏覽:976
怎麼投訴蘋果商店app 瀏覽:470
華為手機如何看有多少個app 瀏覽:734
btr如何管理別的伺服器 瀏覽:410
spwm軟體演算法 瀏覽:184
70多歲單身程序員 瀏覽:221
高考考前解壓拓展訓練 瀏覽:217
用紙做解壓玩具不用澆水 瀏覽:584