当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。