国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Java中JSON數(shù)據(jù)的讀取和解析

這篇具有很好參考價值的文章主要介紹了Java中JSON數(shù)據(jù)的讀取和解析。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

? ? ? ? 在做springboot項目時用到了json文件讀取和解析,所以在這里記錄一下學(xué)習(xí)過程中總結(jié)的一些點,希望對大家有幫助~

  • 配置fastJson

<!--引入fastjson依賴-->
<dependency>
 ? ?<groupId>com.alibaba</groupId>
 ? ?<artifactId>fastjson</artifactId>
 ? ?<version>1.2.35</version>
</dependency>
  • 構(gòu)建工具類(方便多次調(diào)用時重復(fù)使用)

public static JSONObject readJsonFile(String filename){
 ? ? ? ?String jsonString = "";
 ? ? ? ?File jsonFile = new File(filename);
 ? ? ? ?try {
 ? ? ? ? ? ?FileReader fileReader = new FileReader(jsonFile);
 ? ? ? ? ? ?Reader reader = new InputStreamReader(new FileInputStream(jsonFile),"utf-8");
 ? ? ? ? ? ?int ch = 0;
 ? ? ? ? ? ?StringBuffer stringBuffer = new StringBuffer();
 ? ? ? ? ? ?while ((ch = reader.read()) != -1){
 ? ? ? ? ? ? ? ?stringBuffer.append((char) ch);
 ? ? ? ? ?  }
 ? ? ? ? ? ?fileReader.close();
 ? ? ? ? ? ?reader.close();
 ? ? ? ? ? ?jsonString = stringBuffer.toString();
 ? ? ?  } catch (FileNotFoundException e){
 ? ? ? ? ? ?JSONObject notFoundJson = new JSONObject();
 ? ? ? ? ? ?notFoundJson.put("code",Code.GET_ERR);
 ? ? ? ? ? ?notFoundJson.put("msg","該地區(qū)GeoJson文件不存在!");
 ? ? ? ? ? ?return notFoundJson;
 ? ? ?  } catch (IOException e) {
 ? ? ? ? ? ?e.printStackTrace();
 ? ? ?  }
 ? ? ? ?return JSONObject.parseObject(jsonString);
 ?  }
  • json文件示例(以geojson為例,數(shù)據(jù)結(jié)構(gòu)比較復(fù)雜,只是層次比較多)

{
 ? ?"type": "FeatureCollection",
 ? ?"features": [
 ? ? ?  {
 ? ? ? ? ? ?"type": "Feature",
 ? ? ? ? ? ?"properties": {
 ? ? ? ? ? ? ? ?"adcode": 110101,
 ? ? ? ? ? ? ? ?"name": "東城區(qū)",
 ? ? ? ? ? ? ? ?"center": [
 ? ? ? ? ? ? ? ? ? ?116.418757,
 ? ? ? ? ? ? ? ? ? ?39.917544
 ? ? ? ? ? ? ?  ],
 ? ? ? ? ? ? ? ?"centroid": [
 ? ? ? ? ? ? ? ? ? ?116.416739,
 ? ? ? ? ? ? ? ? ? ?39.912912
 ? ? ? ? ? ? ?  ],
 ? ? ? ? ? ? ? ?"childrenNum": 0,
 ? ? ? ? ? ? ? ?"level": "district",
 ? ? ? ? ? ? ? ?"acroutes": [
 ? ? ? ? ? ? ? ? ? ?100000,
 ? ? ? ? ? ? ? ? ? ?110000
 ? ? ? ? ? ? ?  ],
 ? ? ? ? ? ? ? ?"parent": {
 ? ? ? ? ? ? ? ? ? ?"adcode": 110000
 ? ? ? ? ? ? ?  }
 ? ? ? ? ?  },
 ? ? ? ? ? ?"geometry": {
 ? ? ? ? ? ? ? ?"type": "MultiPolygon",
 ? ? ? ? ? ? ? ?"coordinates": [
 ? ? ? ? ? ? ? ? ?  [
 ? ? ? ? ? ? ? ? ? ? ?  [
 ? ? ? ? ? ? ? ? ? ? ? ? ?  [
 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?116.387664,
 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?39.960923
 ? ? ? ? ? ? ? ? ? ? ? ? ?  ],
 ? ? ? ? ? ? ? ? ? ? ? ? ?  [
 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?116.38948,
 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?39.961038
 ? ? ? ? ? ? ? ? ? ? ? ? ?  ],
 ? ? ? ? ? ? ? ? ? ? ? ? ?  [
 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?116.389506,
 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?39.963147
 ? ? ? ? ? ? ? ? ? ? ? ? ?  ],
 ? ? ? ? ? ? ? ? ? ? ? ? ?  [
 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?116.396959,
 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?39.963204
 ? ? ? ? ? ? ? ? ? ? ? ? ?  ]
 ? ? ? ? ? ? ? ? ? ? ?  ]
 ? ? ? ? ? ? ? ? ?  ]
 ? ? ? ? ? ? ?  ]
 ? ? ? ? ?  }
 ? ? ?  }
 ?  ]
}
  • 調(diào)用工具類讀取數(shù)據(jù):

String filePath = "文件路徑";
// 讀取json文件
JSONObject jsonObejct = readJsonFile(filePath);
  • 讀取json對象中的"features"字段內(nèi)容,是數(shù)組類型的,采用以下方式:

// 方式一
JSONArray featureArray = JSON.parseArray(jsonObejct.get("features").toString());
// 方式二
JSONArray featureArray = jsonObejct.getJSONArray("features");
  • 讀取對象類型字段:

// 方式一
JSONObject propertiesObject = JSONObject.parseObject(regionObject.getString("properties"));
// 方式二
JSONObject propertiesObject = jsonObejct.getJSONArray("features").getJSONObject(0).getJSONObject("properties");
  • 讀取字符串類型:

// 方式一
String type = jsonObejct.get("type").toString();
// 方式二
String type = jsonObejct.getString("type");
  • 讀取整數(shù)類型:

// 方式一
String type = jsonObejct.get("type").toString();
// 方式二
String type = jsonObejct.getString("type");
  • 整體解析:文章來源地址http://www.zghlxwxcb.cn/news/detail-520877.html

String filePath = "文件地址/文件名.json";
JSONObject jsonObejct = ReadJsonUtils.readJsonFile(filePath);
?
// 方式一(很復(fù)雜,語句分開,但是結(jié)構(gòu)清晰)
// 讀取json文件的features字段,并轉(zhuǎn)換為json數(shù)組
JSONArray featureArray = JSON.parseArray(jsonObejct.get("features").toString());
// 讀取數(shù)組第一個元素,為地區(qū)對象
JSONObject regionObject = JSONObject.parseObject(featureArray.get(0).toString());
// 讀取地區(qū)對象中的參數(shù)對象
JSONObject propertiesObject = JSONObject.parseObject(regionObject.getString("properties"));
// 讀取參數(shù)對象的名稱
String name = propertiesObject.getString("name");
// 讀取參數(shù)對象的地區(qū)代碼
int adcode = propertiesObject.getIntValue("adcode");
// 讀取地區(qū)對象的幾何對象
JSONObject geometryObject = JSONObject.parseObject(regionObject.get("geometry").toString());
// 讀取幾何字段中的坐標(biāo)數(shù)組
JSONArray coordinates = JSONObject.parseArray(geometryObject.get("coordinates").toString());
// 讀取幾何對象中的類型名稱
String type = geometryObject.getString("type");
?
// 方式二(無需每次重新轉(zhuǎn)換類型,一行搞定)
String name = jsonObejct.getJSONArray("features").getJSONObject(0).getJSONObject("properties").getString("name");
String type = jsonObejct.getJSONArray("features").getJSONObject(0).getJSONObject("geometry").getString("type");
JSONArray coordinates = jsonObejct.getJSONArray("features").getJSONObject(0).getJSONObject("geometry").getJSONArray("coordinates");

到了這里,關(guān)于Java中JSON數(shù)據(jù)的讀取和解析的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 【Unity 3D】C#從JSON文件中讀取、解析、保存數(shù)據(jù)(附源碼)

    JSON是一種輕量級的數(shù)據(jù)交換格式,采用完全獨立于編程語言的文本格式存儲和表示數(shù)據(jù),簡潔和清晰的層次結(jié)構(gòu)使JSON成為理想的數(shù)據(jù)交換語言,易于讀者閱讀和編寫,同時也易于機(jī)器解析和生成,并有效的提高網(wǎng)絡(luò)傳輸效率 生成JSON數(shù)據(jù)實例代碼如下 下面的代碼將JSON中數(shù)據(jù)

    2024年02月11日
    瀏覽(161)
  • 如何使用 Java 將 JSON 文件讀取為字符串?這三種方法很管用!

    如何使用 Java 將 JSON 文件讀取為字符串?這三種方法很管用!

    JSON (JavaScript Object Notation) 是一種輕量級的數(shù)據(jù)交換格式,它可以用來存儲和傳輸結(jié)構(gòu)化的數(shù)據(jù)。在 Java 中,有多種方法可以將 JSON 文件讀取為字符串,本文將介紹其中的幾種。 java.io 包中提供了一些類,如 FileReader、BufferedReader、InputStreamReader 等,可以用來讀取文件的內(nèi)容。

    2024年02月01日
    瀏覽(23)
  • Java 解析多層嵌套json數(shù)據(jù)及json字符串與對象的相互轉(zhuǎn)換

    Java 解析多層嵌套json數(shù)據(jù)及json字符串與對象的相互轉(zhuǎn)換

    本文主要介紹java解析多層嵌套json數(shù)據(jù)以及字符串與JSON對象之間的相互轉(zhuǎn)換,包括:json字符串的取值,json對象與字符串的相互轉(zhuǎn)換,字符串轉(zhuǎn)化為java對象,字符串轉(zhuǎn)化為javaList列表等。 提示:以下是本篇文章正文內(nèi)容,下面案例可供參考 數(shù)據(jù)格式:JSON實際上就是鍵值對(

    2024年02月04日
    瀏覽(32)
  • Java解析JSON復(fù)雜數(shù)據(jù)的第三種思路

    Java解析JSON復(fù)雜數(shù)據(jù)的第三種思路

    本文介紹了Java解析JSON復(fù)雜數(shù)據(jù)的第三種思路,通過改變思路,按照新的流程獲取數(shù)據(jù)。文章詳細(xì)解析了接口JSON數(shù)據(jù),并提供了JSON轉(zhuǎn)XML數(shù)據(jù)

    2024年01月25日
    瀏覽(13)
  • 讀取JSON文件 如何在Unity中讀取Json文件中的數(shù)據(jù)

    讀取JSON文件 如何在Unity中讀取Json文件中的數(shù)據(jù)

    Josn是一種輕量級的數(shù)據(jù)交換格式,JSON能夠描述四種簡單的類型(字符串、數(shù)字、布爾值及null)和兩種結(jié)構(gòu)化類型(對象及數(shù)組),在Unity里經(jīng)常用Json來處理大量的字符串,容易解析,效率非???。 基本結(jié)構(gòu) 1、語法 數(shù)據(jù)存在鍵值對中 數(shù)據(jù)由逗號分隔 花括號保存對象 方括號保存

    2024年02月15日
    瀏覽(23)
  • 【Unity】C# 創(chuàng)建/讀取/解析JSON數(shù)據(jù)

    判斷是否存在JSON數(shù)據(jù)文件沒有則創(chuàng)建并保存

    2024年02月16日
    瀏覽(18)
  • .NET學(xué)習(xí)筆記----關(guān)于.NET Core那些事(3)【配置文件的讀取、json文件的通用解析、讀取靜態(tài)文件】

    .NET學(xué)習(xí)筆記----關(guān)于.NET Core那些事(3)【配置文件的讀取、json文件的通用解析、讀取靜態(tài)文件】

    appsettings.json準(zhǔn)備 控制器中讀取json 定義與配置文件中需要獲取的標(biāo)簽結(jié)構(gòu)完全一致的實體類:IConfiguration .Bind() ----反序列化 要讀取的json字符串 定義的實體類 讀取json 用到的json字符串 == 用到的類 Startup.cs中的配置 控制器中的代碼 運行結(jié)果 當(dāng)我們用《關(guān)于.NET Core那些事(2)》

    2024年02月04日
    瀏覽(22)
  • Java:SpringBoot使用AES對JSON數(shù)據(jù)加密和解密

    客戶端和服務(wù)端都可以加密和解密,使用base64進(jìn)行網(wǎng)絡(luò)傳輸 加密方 解密方 2.1、項目結(jié)構(gòu) 2.2、常規(guī)業(yè)務(wù)代碼 pom.xml Application.java WebMvcConfig.java CrossConfig.java JsonRequest.java JsonResult.java JsonResultVO.java IndexController.java UserController.java 2.3、加密的實現(xiàn) application.yml SecretData.java DecryptRequ

    2024年02月11日
    瀏覽(22)
  • JAVA讀取文本轉(zhuǎn)成JSON

    要將包含制表符的文本數(shù)據(jù)轉(zhuǎn)換為JSON格式,你可以使用Java的JSON庫,例如Jackson或Gson。以下是一個使用Jackson庫將包含制表符的文本數(shù)據(jù)轉(zhuǎn)換為JSON的示例代碼: 如果使用Maven,可以在pom.xml文件中添加以下依賴: ** ** 總結(jié): 在這個例子中,tabSeparatedData變量包含制表符分隔的文

    2024年01月23日
    瀏覽(17)
  • Unity文本框解析讀取mqtt服務(wù)器JSON數(shù)據(jù)

    Unity文本框解析讀取mqtt服務(wù)器JSON數(shù)據(jù)

    本次內(nèi)容是講述如何將mqtt服務(wù)器中接收到的數(shù)據(jù)在Unity3D的文本框控件中顯示JSON鍵值對中的“值”。 需求: 1.GameObject——UI——Text (將Unity 3D的文本框控件置于場景) 命名空間引用: using UnityEngine.UI; 2. Newtonsoft插件 命名空間引用: Newtonsoft.Json.Linq; 3.MQTT通訊需求: (1)h

    2023年04月08日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包