java處理json格式數組(json數組轉java數組)

本文目錄一覽:

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-hant/n/134116.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
JACR的頭像JACR
上一篇 2024-10-04 00:03
下一篇 2024-10-04 00:03

相關推薦

  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Java Bean加載過程

    Java Bean加載過程涉及到類加載器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean加載的過程。 一、類加載器 類加載器是Java虛擬機…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • 如何在Java中拼接OBJ格式的文件並生成完整的圖像

    OBJ格式是一種用於表示3D對象的標準格式,通常由一組頂點、面和紋理映射坐標組成。在本文中,我們將討論如何將多個OBJ文件拼接在一起,生成一個完整的3D模型。 一、讀取OBJ文件 …

    編程 2025-04-29
  • Python導入數組

    本文將為您詳細闡述Python導入數組的方法、優勢、適用場景等方面,並附上代碼示例。 一、numpy庫的使用 numpy是Python中一個強大的數學庫,其中提供了非常豐富的數學函…

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發布。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29
  • Python返回數組:一次性搞定多種數據類型

    Python是一種多用途的高級編程語言,具有高效性和易讀性的特點,因此被廣泛應用於數據科學、機器學習、Web開發、遊戲開發等各個領域。其中,Python返回數組也是一項非常強大的功…

    編程 2025-04-29
  • Java判斷字符串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字符串中是否存在多個指定字符: 一、字符串遍歷 字符串是Java編程中非常重要的一種數據類型。要判斷字符串中是否存在多個指定字符…

    編程 2025-04-29

發表回復

登錄後才能評論