本文目錄一覽:
json數組轉java對象怎麼轉?
1、需要json的相關jar包
2、設置json格式字符串:
String str=”{\”student\”:[{\”name\”:\”leilei\”,\”age\”:23},{\”name\”:\”leilei02\”,\”age\”:23}]}”;
3、建立相應的類:
public class StudentList {
ListStudent student;
public ListStudent getStudent() {
return student;
}
public void setStudent(ListStudent 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;
ListStudent 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());
}
}
json格式的字符串轉換為java對象
先來解釋反斜杠幹嘛用的:
你既然提到了是json字符串,對,請注意字符串三個字。什麼是字符串?兩個引號之間的就是一個字符串比如:”abcdefg”這就是字符串.
假如我有個json對象:
{
“message” : “success”
}
那麼問題來了,怎麼把它放到一個String字符串對象里呢?
那麼我們都會這麼做:
String json = “{“message”:”success”}”;
對吧?但是這麼做對嗎?前面說過了,字符串是引號開始,引號結尾的,再看一眼這麼做對嗎?
所以我們需要轉義字符去將引號放入字符串當中,而不是字符串定義的功能。“ \” ”就是表示將雙引號放入字符串中。
2. json字符串轉java對象
下面以ali的fastjson為例,講解json字符串轉json對象:
String jsonStr = “{\”message\” : \”success\”}”;
JSONObject jsonObject = JSON.parseObject(jsonStr);
String message = jsonObject.getString(“message”);
System.out.println(message);
假如你有想要轉換成的bean :
public class Info {
private String message;
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}
就可以這樣:
String jsonStr = “{\”message\” : \”success\”}”;
Info info = JSON.parseObject(jsonStr, Info.class);
System.out.println(info.getMessage());
這裡的fastjson只是處理json的框架中的一個,此外還有jackson、Gson等等,可以根據自己的需求選擇一個就可以了。
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);
原創文章,作者:0QAPA,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/129722.html