jsonobject轉java對象
A. json數組轉java對象怎麼轉
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、測試程序
import java.util.List;
import org.codehaus.jackson.map.ObjectMapper;
public class JsonToJavaBean {
public static void main(String[] args) {
String str="{\"student\":[{\"name\":\"leilei\",\"age\":23},{\"name\":\"leilei02\",\"age\":23}]}";
Student stu = null;
List<Student> list = null;
try {
ObjectMapper objectMapper=new ObjectMapper();
StudentList studentList=objectMapper.readValue(str, StudentList.class);
list=studentList.getStudent();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
for(Student s:list){
System.out.println(s.getName());
}
}
B. Java中Json、String、jsonObject、jsonArray格式之間的互相轉換 (Fastjson、Gson、String字元串分隔)
在Java中,JSON處理是常見的數據交換方式,特別是在Fastjson和Gson庫的支持下。以下是關於這些工具在JSON格式轉換中的操作:
Fastjson是阿里巴巴提供的強大庫,用於處理JSON數據。以下是其基本操作:
1.
將JSON格式的字元串轉換為JSONObject,便於按需訪問各個屬性:`String jsonString = ...; JSONObject jsonObject = JSON.parseObject(jsonString);`
2.
同樣,JSONObject可以轉換為JSONArray,用於存儲和操作數組數據:`JSONArray jsonArray = jsonObject.getJSONArray("arrayKey");`
3.
通過`parseObject`方法,可以將JSON字元串轉換為JavaBean實例:`YourClass bean = JSON.parseObject(jsonString, YourClass.class);`
4.
相反,如果需要將JavaBean轉換為JSON,使用`toJSONString`方法:`String jsonString = bean.toJSONString();`
5.
對於Map,可以使用`ObjectMapper`將JSON字元串映射為Map對象:`Map map = JSON.parseObject(jsonString, Map.class);`
6.
將JavaBean映射回JSON時,確保包含空屬性:`Gson gson = new GsonBuilder().serializeNulls().create(); String jsonString = gson.toJson(bean);`
Gson庫在處理JSON時提供了更多的靈活性,如處理空值。然而,處理字元串時,可能需要使用逗號分隔:
當需要將字元串按逗號分隔為JSON數組,可以使用`split()`方法:`String[] values = jsonString.split(",");`
如果字元串本身已經是JSON格式,但需要按鍵值對拆分,可以先解析為JSONObject,然後獲取其鍵值對:`JSONObject jsonObject = JSON.parseObject(jsonString); String key = jsonObject.getString("key"); String value = jsonObject.getString("value");`
以上就是Java中Json、String、jsonObject和jsonArray之間的轉換方法,以及處理字元串分隔的基本操作。
C. 怎麼將json對象轉換成一個java對象
public static void jsonStrToJava(){
//定義兩種不同格式的字元串
String objectStr="{\"name\":\"JSON\",\"age\":\"24\",\"address\":\"北京市西城區\"}";
String arrayStr="[{\"name\":\"JSON\",\"age\":\"24\",\"address\":\"北京市西城區\"}]";
//1、使用JSONObject
JSONObject jsonObject=JSONObject.fromObject(objectStr);
Student stu=(Student)JSONObject.toBean(jsonObject, Student.class);
//2、使用JSONArray
JSONArray jsonArray=JSONArray.fromObject(arrayStr);
//獲得jsonArray的第一個元素
Object o=jsonArray.get(0);
JSONObject jsonObject2=JSONObject.fromObject(o);
Student stu2=(Student)JSONObject.toBean(jsonObject2, Student.class);
System.out.println("stu:"+stu);
System.out.println("stu2:"+stu2);
}
D. java中json對象是如何創建或者轉換出來的
JSONObject在JAVA中其實就相當於Map, 可以通過key取到值;
而JAVA對象,一般是JAVA中的model或者domain 模型對象, 這種對象代表的是一個業務的模型,是有明確的意義的, 包括裡面的屬性類型都是明確定義;
轉換成對象之後,操作其中的值就可以用getter,setter方法明確指定,
一般其他人使用的時候也能知道裡面有什麼,而如果只有一個JSONObject, 使用的時候除了先在控制台輸入裡面的內容是不知道裡面有什麼的,
並不適合在JAVA方法中的數據傳遞使用