本文目錄一覽:
- 1、java怎麼將json對象轉換成json數組
- 2、用Java語言:從下列Json數組中只展示「productTypeName=公路零擔」的數據集?
- 3、java中把json怎麼轉換成數組?
- 4、java怎麼讀取json格式的數據
- 5、java怎麼把數據轉成json 數組
java怎麼將json對象轉換成json數組
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;
用Java語言:從下列Json數組中只展示「productTypeName=公路零擔」的數據集?
java處理json,最經典的做法還是將String字元串轉換成對象來處理。
需要藉助第三方jar包,常見的第三方json處理jar包有:阿里巴巴的fastjson,谷歌的gson還有諸如jackson之類的。
我習慣用gson:
1、引入gson依賴或去網上下載其jar包:
dependency
groupIdcom.google.code.gson/groupId
artifactIdgson/artifactId
version2.3.1/version
/dependency
2、根據json串,定義對象:
首先定義json最外層,我稱其為Response,Response中有根節點data:
這裡我用了lombok的@Data註解,自動生成getter、setter、toString等方法。
然後定義了根節點對象Data1,裡面有Record集合records:
之後就是定義Record的各個欄位:
現在我就有了完整的數據結構,使用gson進行轉換即可:
接下來拿著response對象進行正常的java邏輯處理就行:
完整代碼:
public class TController {
public static void main(String[] args) {
String jsonString = “{\n” +
“\”data\”:{\n” +
“\”records\”:[\n” +
“{\n” +
“\”couponName\”:\”\”,\n” +
“\”payTime\”:\”2021-11-15 11:11:33\”,\n” +
“\”providerEndAddress\”:\”\”,\n” +
“\”paidMoney\”:268,\n” +
“\”weihuUserId\”:\”0\”,\n” +
“\”productTypeName\”:\”公路零擔\”\n” +
“},\n” +
“{\n” +
“\”couponName\”:\”\”,\n” +
“\”payTime\”:\”2021-11-15 11:11:33\”,\n” +
“\”providerEndAddress\”:\”\”,\n” +
“\”paidMoney\”:268,\n” +
“\”weihuUserId\”:\”0\”,\n” +
“\”productTypeName\”:\”航空運輸\”\n” +
“}\n” +
“]\n” +
“}\n” +
“}”;
Gson gson = new Gson();
Response response = gson.fromJson(jsonString, Response.class);
Data1 data = response.getData();//取出data
ListRecord records = data.getRecords();//取出records
for (int i = 0; i records.size(); i++) {
//循環判斷records中的數據,ProductTypeName不為「公路零擔」則移除
if (!”公路零擔”.equals(records.get(i).getProductTypeName())) {
records.remove(i);
i–;
}
}
data.setRecords(records);//覆蓋原有的records
response.setData(data);//覆蓋原有的data
System.out.println(gson.toJson(response, Response.class));//轉成json字元串輸出
}
@Data
private class Response {
private Data1 data;
}
@Data
private class Data1 {
private ListRecord records;
}
@Data
private class Record {
private String couponName;
private String payTime;
private String providerEndAddress;
private String paidMoney;
private String weihuUserId;
private String productTypeName;
}
}
運行結果:
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運算符為數組元素分配內存空間的方式稱為動態分配方式。
以上內容參考:百度百科-數組
java怎麼讀取json格式的數據
java可以使用JSONObject和JSONArray來操作json對象和json數組,具體用法如下
1:java對象與json串轉換:
java對象—json串:
JSONObject JSONStr = JSONObject.fromObject(object);
String str = JSONStr.toString();
json串—java對象:
JSONObject jsonObject = JSONObject.fromObject( jsonString );
Object pojo = JSONObject.toBean(jsonObject,pojoCalss);
2:java數組對象與json串轉換:
java數組—json串:
JSONArray arrayStr = JSONArray.fromObject(List?);
String str = arrayStr.toString();
json串—java數組:
JSONArray array = JSONArray.fromObject(str);
List? list = JSONArray.toList(array, ?.class);
java怎麼把數據轉成json 數組
有兩種方法實現:
(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);
原創文章,作者:JACR,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/134116.html