1. java怎麼把數據轉成json 數組
有兩種方法實現:
(1)直接轉換:
創建JSONArray對象、JSONObject對象,通過put方法將其數據以鍵值對的形式填充,如例:
//假如有一個Java實體類Person,包括以下屬性:phone、sex、married、address。
ArrayList<Person> persons = new ArrayList<Person>();
for (int i = 0; i < 3; i++) {
persons.add(new Person("138******67", "女", true, "北京朝陽區"));//填充Java實體類集合
}
JSONArray array = new JSONArray();// Json格式的數組形式
JSONObject obj;//json格式的單個對象形式
for (int i = 0; i < persons.size(); i++) {
obj = new JSONObject();
//依次填充每一個Java實體對象
try {
obj.put("phone", persons.get(i).getPhone());//json通過put方式以key-value形式填充
obj.put("sex", persons.get(i).getSex());
obj.put("married", persons.get(i).getMarried());
obj.put("address", persons.get(i).getAddress());
array.put(obj);//將JSONObject添加入JSONArray
} catch (JSONException e) {
e.printStackTrace();
}
}
(2)通過GSON工具實現:
只需要創建GSON對象,通過toJson方法轉換即可。如例:
//模擬Java數據
Person person = new Person("敏敏", 23, "女", "北京市海淀區");
//創建GSON對象
Gson gson = new Gson();
//調用toJson方法即可轉換為字元串的json格式
String json = gson.toJson(person);
2. fastjson中怎麼把java對象轉化為json對象
寫入以下代碼即可實現:
public static void main(String[] args) {
User_DAL userDal = new User_DAL();// 創建數據訪問對象
ResponseResult<User> ret = userDal.getUserList("id < 50", 2, 10);// 查詢ID小於50的用戶,保存到分頁類中
String json = JSON.toJSONString(ret, true); // 將對象轉換成json字元串,true為格式化輸出
System.out.println(json);
List<User> list = JSON.parseArray("{{name:123},{name:456}}", User.class);//將json字元串,轉換成Java對象數組
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i).getName());
}
}
3. java 含有數組的字元串怎麼轉化為json對象
1、需要json的相關jar包
2、設置json格式字元串:
String str="{\"student\":[{\"name\":\"leilei\",\"age\":23},{\"name\":\"leilei02\",\"age\":23}]}";
3、建立相應的類:
public class StudentList {
List<Student> student;
public List<Student> getStudent() {
return student;
}
public void setStudent(List<Student> student) {
this.student = student;
}
}
public class Student {
private String name;
private int age;
//private StudentClass studentClass;
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;
}
}
4. 怎麼將數組轉為json
要使用json來傳輸數據,必須將所承載的數據轉換成json的格式。json的格式如下:
JSON建構於兩種結構:
1. 「名稱/值」對的集合。不同的語言中,它被理解為對象(object),紀錄(record),結構(struct),字典(dictionary),哈希表(hash table),有鍵列表(keyed list),或者關聯數組 (associative array)。
2. 值的有序列表。在大部分語言中,它被理解為數組(array)。
這些都是常見的數據結構。事實上大部分現代計算機語言都以某種形式支持它們。這使得一種數據格式在同樣基於這些結構的編程語言之間交換成為可能。
JSON具有以下這些形式:
1.對象是一個無序的「『名稱/值』對」集合。一個對象以「{」(左括弧)開始,「}」(右括弧)結束。每個「名稱」後跟一個「:」(冒號);「『名稱/值』 對」之間使用「,」(逗號)分隔。
例:{"name":"張三","age":20,"birthday":"1982-07-20"}
這是對象在json中的表示形式.即{"key1":"value1","key2":"value2",...}
2.數組是值(value)的有序集合。一個數組以「[」(左中括弧)開始,「]」(右中括弧)結束。值之間使用「,」(逗號)分隔。
例:["張三","李四","王五"]
這是數組在json中的表示形式.即[value1,value2,value3,....]
3.值(value)可以是雙引號括起來的字元串(string)、數值(number)、true、false、 null、對象(object)或者數組(array)。這些結構可以嵌套。
4.字元串(string)是由雙引號包圍的任意數量Unicode字元的集合,使用反斜線轉義。一個字元(character)即一個單獨的字元串(character string)。
字元串(string)與C或者Java的字元串非常相似。
5.數值(number)也與C或者Java的數值非常相似。除去未曾使用的八進制與十六進制格式。除去一些編碼細節。
註:你只要記住前兩種形式就可以了。
注意:key一定要用引號,而value如果是字元串,也一定要用引號引起來。切記,有的系統中,只當雙引號是有效的,而不認單引號。所以建議用雙引號。
更多的格式內容請訪問http://json.org/json-zh.html
以上說了json的表示形式,那麼現在來看一下它的使用:
因為語言的不同,在action中對json的使用方式也不一樣,但思路是一樣的,那就是將json轉換為對象或數組,我們這里只提及客戶端的javascript中json的轉換。你使用哪種語言,請參照本語言使用json的方式。
1.首先,在javascript中要獲取前端頁面中所有輸入域的值,保存到數組或一個對象中。
2.將對象或數組轉換成JSON格式。有一個js文件能讓我們轉換起來非常方便,就是prototype.js,導入這個文件後,使用(對象.toJSON())或(數組.toJSON()),這個對象或數組就被保存成為了JSON格式的數據
3.將這個JSON對象傳入action中進行處理,然後返回。
4.如果返回的是一個json,那麼各戶端接收以後需要將json格式的數據轉換為javascrip中的對象或數組。同樣使用prototype.js,(json對象.evalJSON());好了,這樣就轉換成js中的對象或數組了。同樣你也可以使用javascript中的eval函數進行轉換。(eval(json對象)),這兩種方式都可以效果是相同的,都是返回的javascript的對象或數組。你現在就可以在客戶端的javascript中使用這個對象或數組了
注意:prototype.js與json.js可能會有沖突,建議只使用一種。當然在這里沒有介紹json.js的使用,原因是prototype.js的功能已經十分強大,在使用prototype.js時,已經沒有必要再使用json.js了
5. 如何將java對象數組轉化為JSON樹
//接受一個List
net.sf.json.JSONArray.fromObject(dataList);
//接受一個bean
net.sf.json.JSONObject.fromObject(Objectobject);
利用json-lib,封裝好對象的層級關系後,直接可以用上面兩個方法來轉換json格式數據。
6. java中把json怎麼轉換成數組
使用原生的解析:
String json = "...";
//遍歷數組里的值,得到每個獨立的對象,然後獲取對應的值設置到聲明好的對象中,最終創建對象完成後添加到集合中,如我自己代碼里的片段:
for (int j = 0; j < array.length(); j++) {
obj = array.getJSONObject(j);
Data data = new Data();
mDataList.add(data);
}
數組聲明
在數組的聲明格式里,「數據類型」是聲明數組元素的數據類型,可以是java語言中任意的數據類型,包括簡單類型和結構類型。「數組名」是用來統一這些相同數據類型的名稱,其命名規則和變數的命名規則相同。
數組聲明之後,接下來便是要分配數組所需要的內存,這時必須用運算符new,其中「個數」是告訴編譯器,所聲明的數組要存放多少個元素,所以new運算符是通知編譯器根據括弧里的個數,在內存中分配一塊空間供該數組使用。利用new運算符為數組元素分配內存空間的方式稱為動態分配方式。
以上內容參考:網路-數組
7. 跪求:java中如何將對象數組轉換為json數據格式(在線等)
Json必需的包
commons-httpclient-3.1.jar
commons-lang-2.4.jar
commons-logging-1.1.1.jar
json-lib-2.2.3-jdk13.jar
ezmorph-1.0.6.jar
commons-collections-3.2.1.jar
List list = new ArrayList();
list.add( "first" );
list.add( "second" );
JSONArray jsonArray2 = JSONArray.fromObject( list );
8. Java:傳過來的是個JSON字元串組成的數組,如何將其解析成JSON對象呢
JSONArray jsonArr = JSONArray.fromObject(jsonStr);