Java
 Computer >> コンピューター >  >> プログラミング >> Java

JSONバイト配列をエンコードおよびデコードする方法

JSONでバイナリを送信する一般的な方法は、base64でエンコードすることです。 Javaは、byte[]をBase64でエンコードおよびデコードするためのさまざまな方法を提供します。これらの1つはDatatypeConverterです。

以下に示すようなJSON配列があるとします。

{
    "menu": {
        "id": "file",
        "value": "File",
        "popup": {
            "menuitem": [
                {"value": "New", "onclick": "CreateNewDoc()"},
                {"value": "Open", "onclick": "OpenDoc()"},
                {"value": "Close", "onclick": "CloseDoc()"}
            ]
        }
    }
}

JSONをBase64としてエンコード

上記のJSONをエンコードするには、

を使用します。
String base64Encoded = DatatypeConverter.printBase64Binary(jsonBytes);

関連:

  • JavaでJSONを解析する方法
  • JavaマップをJSONに変換する方法
  • JavaオブジェクトをJSONに変換する方法

Base64JSONをデコード

base64でエンコードされたJSONをデコードするには、

を使用します。
byte[] base64Decoded = DatatypeConverter.parseBase64Binary(base64Encoded);

コード例:

import javax.xml.bind.DatatypeConverter;

public class JsonEncodeDecode {

    public static void main(String[] args) {
        String json = "{\"menu\": {\n" +
                "  \"id\": \"file\",\n" +
                "  \"value\": \"File\",\n" +
                "  \"popup\": {\n" +
                "    \"menuitem\": [\n" +
                "      {\"value\": \"New\", \"onclick\": \"CreateNewDoc()\"},\n" +
                "      {\"value\": \"Open\", \"onclick\": \"OpenDoc()\"},\n" +
                "      {\"value\": \"Close\", \"onclick\": \"CloseDoc()\"}\n" +
                "    ]\n" +
                "  }\n" +
                "}}";

        byte[] bytes = json.getBytes();

        String base64Encoded = DatatypeConverter.printBase64Binary(bytes);
        System.out.println("Encoded Json:\n");
        System.out.println(base64Encoded + "\n");

        byte[] base64Decoded = DatatypeConverter.parseBase64Binary(base64Encoded);
        System.out.println("Decoded Json:\n");
        System.out.println(new String(base64Decoded));
    }
}

エンコードされたJSONの出力:

eyJtZW51IjogewogICJpZCI6ICJmaWxlIiwKICAidmFsdW
注:エンコードされたJSONは、整理のために切り捨てられます。それ以外の場合は、非常に長い文字列になります。

デコードされたJSONの出力:

{
    "menu": {
        "id": "file",
        "value": "File",
        "popup": {
            "menuitem": [
                {"value": "New", "onclick": "CreateNewDoc()"},
                {"value": "Open", "onclick": "OpenDoc()"},
                {"value": "Close", "onclick": "CloseDoc()"}
            ]
        }
    }
}

  1. AndroidでJSON配列を繰り返す方法は?

    この例は、AndroidでJSON配列を反復処理する方法を示しています。 ステップ1 − Android Studioで新しいプロジェクトを作成し、[ファイル]⇒[新しいプロジェクト]に移動して、新しいプロジェクトを作成するために必要なすべての詳細を入力します。 ステップ2 −次のコードをres / layout/activity_main.xmlに追加します。 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="https://sche

  2. Javaを使用してJSON配列を作成/作成する方法は?

    Json配列は、角かっこで囲まれた順序付けられた値のコレクションです。つまり、「[」で始まり、「]」で終わります。配列の値は「、」(コンマ)で区切られます。 サンプルJSON配列 {    "books": [ Java, JavaFX, Hbase, Cassandra, WebGL, JOGL] } json-simpleは、JSONオブジェクトを処理するために使用される軽量ライブラリです。これを使用すると、Javaプログラムを使用してJSONドキュメントのコンテンツを読み書きできます。 JSON-単純なMaven依存関係 以下は、JSON-si