當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Java Byte Array轉JSON用法及代碼示例


JSON 隻是 Javascript 對象表示法。它是一種存儲數據和傳輸數據的文本格式。通常,它會以字符串值對的形式表示。它與語言無關並且可以在任何地方運行。 JSON 表示法包含以下基本元素。因此,框架字節數組(來自它可能已轉換的任何源(即通過靜態文本/Rest API 輸出)),它應該支持正確解析的模式。

對象 對象以“{”(左)大括號開始,以“}”(右)大括號結束。
對象成員 成員以逗號分隔,由字符串和值組成。
數組 數組以“[”(開放)開始,以“]”(結束)大括號結束,它幾乎與數組數據結構相似。在 JSON 數組中,它將是不同值作為 JSON 字符串的集合
值可以是字符串,甚至可以有 JSONArray 或任何對象或簡單的常量。
弦樂

字符串用雙引號 (“”) 括起來,後跟 Unicode 冒號 (:)。可以有多個成員,每個成員之間用逗號(,)分隔。

值也用逗號 (,) 分隔,並包括以下內容。 true/false/null/字符或常見的反斜杠轉義。

任何字符串都可以更改為字節數組,並且任何字節數組都可以通過以下方式輕鬆轉換為字符串。假設我們要采用的字符串是具有上述基本元素的模式。因為現在任何 REST 服務都以 JSON 格式生成輸出。如果模式是受支持的結構,我們可以使用 JSONParser 輕鬆解析它。下麵的示例程序集可用於生成簡潔的 JSONArray 輸出。

示例 1

Java


import com.google.gson.JsonArray; 
import com.google.gson.JsonParser; 
import java.nio.charset.StandardCharsets; 
  
public class Example1 { 
    public static void main(String[] args) 
    { 
        String geekPortalUserDetails 
            = "[{\"firstName\":\"GeekA\",\"Posts\":\"100\"}, 
        { 
            \"firstName\":\"GeekB\",\"Posts\":\"150\"}, 
            { 
                \"firstName\":\"GeekC\",\"Posts\":\"50\"}]"; 
  
                // string to byte[] 
                byte[] userDetailsBytes 
                    = geekPortalUserDetails.getBytes( 
                        StandardCharsets.UTF_8); 
  
                // converting the bytes to String 
                String userDetailsBytesToStrings 
                    = new String(userDetailsBytes, 
                                 StandardCharsets.UTF_8); 
                JsonParser jsonParser = new JsonParser(); 
  
                // As the byte array details contains 
                // JSONArray elements, we need to parse the 
                // output in the form of JsonArray 
                JsonArray jsonArrayOutput 
                    = (JsonArray)jsonParser.parse( 
                        userDetailsBytesToStrings); 
                System.out.println("Output : "
                                   + jsonArrayOutput); 
            } 
        }

程序的輸出:

output

我們可以美化一下,看看輸出結果如下。輸出為 JSON 數組格式

將字節數組轉換為 JSON 的最重要的事情是字節數組應該是使用 JsonParser 解析的模式。現在讓我們看一個 JsonObject 的示例

示例 2

Java


import com.google.gson.*; 
import java.nio.charset.StandardCharsets; 
  
public class Example2 { 
    public static void main(String[] args) 
    { 
  
        String geekPortalUserDetail 
            = "{\"firstName\": \"GeekA\",\"last_name\": \"GeekA\", \"email_address\": \"geeka@gfg.com\"}"; 
  
        // string to byte[] 
        byte[] userDetailsBytes 
            = geekPortalUserDetail.getBytes( 
                StandardCharsets.UTF_8); 
  
        // converting the bytes to String 
        String userDetailsBytesToStrings = new String( 
            userDetailsBytes, StandardCharsets.UTF_8); 
        JsonParser jsonParser = new JsonParser(); 
  
        // As the output is of the pattern of JsonObject, it 
        // has to be converted in this way 
        JsonObject jsonObjectOutput 
            = (JsonObject)jsonParser.parse( 
                userDetailsBytesToStrings); 
        System.out.println("Output : " + jsonObjectOutput); 
    } 
}

輸出:

我們可以美化並檢查

https://api.exchangerate-api.com/v4/latest/USD 等多個 REST API 會生成 JSONObject/JSONArray 形式的響應。

例子:

我們可以將這些數據作為字節數組保存在數據庫中,並在需要時以 JSON 格式將其取回。

理由:

很少有 REST API 是免費的。許多都是付費的,而且根據 API 數量的不同也有所不同。為了避免這種情況,不要多次點擊 URL,而是從 REST API 獲取響應並將數據作為字節數組存儲在數據庫中(因為響應會很大並且可能包含照片/視頻等)。當我們需要顯示數據時,我們可以從數據庫中獲取字節數組數據,並像上麵的示例程序一樣解析它,並以 JSONArray/JSONObject 的形式獲取。



相關用法


注:本文由純淨天空篩選整理自priyarajtt大神的英文原創作品 Java Program to Convert Byte Array to JSON。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。