本文目錄一覽:
- 1、求Xstream把這段json解析並生成java實體的代碼
- 2、怎樣把JSON對象快速的轉成java對象
- 3、有沒有將json直接轉換生成Java類的工具軟件
- 4、如何從JSON數據創建Java類
- 5、如何根據json格式生成java bean對象
- 6、json數組轉java對象怎麼轉
求Xstream把這段json解析並生成java實體的代碼
import java.util.ArrayList;
import java.util.List;
public class ResData {
private String retCode;
private String retMessage;
private List rows;
public String getRetCode() {
return retCode;
}
public void setRetCode(String retCode) {
this.retCode = retCode;
}
public String getRetMessage() {
return retMessage;
}
public void setRetMessage(String retMessage) {
this.retMessage = retMessage;
}
public List getRows() {
return rows;
}
public void setRows(List rows) {
this.rows = rows;
}
public void addRow(Row row) {
if(this.rows==null)
this.rows = new ArrayList();
this.rows.add(row);
}
}
public class Row {
private String name;
private int age;
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;
}
}
import java.util.Iterator;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
public class JsonTest {
public static void main(String[] args) throws Exception {
String s = “{\”ResData\”:{\”retCode\”:\”007\”,\”retMessage\”:\”Over\”,\”rows\”:” +
“[{\”name\”:33,\”age\”:44},{\”name\”:\”ls\”,\”age\”:22}]}}”;
JSONObject jo = JSONObject.fromObject(s);// 格式化成json對象
ResData res = new ResData();
String resData = jo.getString(“ResData”);
JSONObject resjo = JSONObject.fromObject(resData);
res.setRetCode(resjo.getString(“retCode”));
res.setRetMessage(resjo.getString(“retMessage”));
String rows = resjo.getString(“rows”);
JSONArray rowsja = JSONArray.fromObject(rows);
Iterator it = rowsja.iterator();
while(it.hasNext()){
JSONObject rowjo = (JSONObject)it.next();
Row row = new Row();
row.setAge(rowjo.getInt(“age”));
row.setName(rowjo.getString(“name”));
res.addRow(row);
}
System.out.println(res);
}
}
怎樣把JSON對象快速的轉成java對象
1、使用原生的解析:
String json = “…”;
JSONArray array= new JSONArray(json);
//遍曆數組裡的值,得到每個獨立的對象,然後獲取對應的值設置到聲明好的對象中,最終創建對象完成後添加到集合中,如我自己代碼里的片段:
for (int j = 0; j array.length(); j++) {
obj = array.getJSONObject(j);
Data data = new Data();
data.setThumbnail(obj.getString(“thumbnail”));
data.setTitle(obj.getString(“title”));
data.setUrl(obj.getString(“url”));
mDataList.add(data);
}
2、使用第三方包如Gson,但是這個你得保證你的JSON字符串個z
有沒有將json直接轉換生成Java類的工具軟件
使用Jackson可以將json轉為Java對象,同樣也可以將java對象轉為json字符串,並且Spring框架內部也是使用的此jar。
實例:將json轉為java對象
/*
下面的id,name,age同是User實體類的屬性
*/
// 將json轉為Java對象
String json = “{\”id\”:1,\”name\”:\”張三\”,\”age\”:18}”;
ObjectMapper mapper = new ObjectMapper();
User user = mapper.readValue(json, User.class);、
// 將json轉為Java數組對象
String json = “[{\”id\”:1,\”name\”:\”張三\”,\”age\”:18},{\”id\”:2,\”name\”:\”李四\”,\”age\”:18},{\”id\”:3,\”name\”:\”王五\”,\”age\”:18}]”;
ObjectMapper mapper = new ObjectMapper();
User[] users = mapper.readValue(json, User[].class);
如何從JSON數據創建Java類
JSON (JavaScript Object Notation)一種簡單的數據格式,比xml更輕巧。
Json建構於兩種結構:
1、“名稱/值”對的集合(A collection of name/value pairs)。不同的語言中,它被理解為對象(object),紀錄(record),結構(struct),字典(dictionary),哈希表(hash table),有鍵列表(keyed list),或者關聯數組 (associative array)。 如:
{
“name”:”jackson”,
“age”:100
}
2、值的有序列表(An ordered list of values)。在大部分語言中,它被理解為數組(array)如:
{
“students”:
[
{“name”:”jackson”,“age”:100},
{“name”:”michael”,”age”:51}
]
}
補充:json是做交換格式,查詢效率非常低,如果做存儲的檢索格式就誤用了。
就是說“聊天信息的保存用json應該可以吧”還不如你之前的mysql數據庫。
json用在客戶端往服務端發送的通訊交換數據的格式上。服務端收到後轉為數據庫中或內存中存放。
如何根據json格式生成java bean對象
1利用:json-lib-2.2.3-jdk13.jar2使用方法舉例:JSONObject.fromObject(bean).toString()–返回{“aa”:”xx”,”bb”:”xxx”}(bean為java對象,有aa和bb兩個字段,值分別為xx和xxx)JSONObject.fromObject(map).toString()–返回{“aa”:”xx”
json數組轉java對象怎麼轉
有兩種方法實現:
(1)直接轉換:
創建JSONArray對象、JSONObject對象,通過put方法將其數據以鍵值對的形式填充,如例:
//假如有一個Java實體類Person,包括以下屬性:phone、sex、married、address。
ArrayListPerson persons = new ArrayListPerson();
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);
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/238362.html