104blog

投資が趣味なITエンジニアの雑記ブログです。

JavaのJsonObjectに値(key : value)を追加する方法

JavaのJsonObjectに値を追加しようと思った時に、追加方法を調べたのでメモしておきます。検索でこのページに来た人にも役立てば幸いです。

ここでは、org.json.JSONObjectを使います。

そもそもJavaでJsonを使う方法が分からない方はこちらの記事を参考にしてください。

www.toyo104-memo.com

目次はこちら。

JsonObject.putメソッドで値を追加しよう

値の追加は簡単にできます。以下のようにputメソッドで追加できます。

JsonObject.put("key","value"); 

サンプルコードはこちら。

30歳の山田太郎さんのJsonObjectに、出身地:東京を追加します。

import org.json.JSONObject;

public class JsonObjectAddKeyValue {
    public static void main(String[] args){
        String jsonStr = "{'名前':'山田太郎','年齢':'30'}";
        JSONObject jso = new JSONObject(jsonStr);
        System.out.println("-----------追加前----------");
        System.out.println(jso.toString());

        // JsonObject.put("key","value"); で値を追加できます
        jso.put("出身地","東京");
        System.out.println("-----------追加後----------");
        System.out.println(jso.toString());
    }
}

実際に動かしてみると、以下のようになります。 

-----------追加前----------
{"年齢":"30","名前":"山田太郎"}
-----------追加後----------
{"年齢":"30","名前":"山田太郎","出身地":"東京"}

とっても簡単でしょ?

【応用編】JsonArrayからJsonObjectを取り出して値を追加する方法

このままだと簡単すぎなので、応用編。

JsonObjectの配列「JsonArray」から、JsonObjectを取り出して値を追加してみます。

やり方は、jsonArray.getJsonObject(key)で、JsonObjectを取得。

取得したJsonObjectにputで値を追加します。

以下にサンプルコードを載せます。

import org.json.JSONArray;

public class JsonObjectAddKeyValue {
    public static void main(String[] args){
        String jsonArrStr = "[" +
                "{'名前':'山田太郎','年齢':'30'}," +
                "{'名前':'佐藤二朗','年齢':'20'}," +
                "]";
        JSONArray jsonArr = new JSONArray(jsonArrStr);
        System.out.println("-----------追加前----------");
        System.out.println(jsonArr.toString());

        // jsonArrayの中のJsonObjectを一つずつ取り出して値を追加します
        for(int i=0; i<jsonArr.length(); i++){
            // JsonObject.put("key","value"); で値を追加できます
            jsonArr.getJSONObject(i).put("出身地","東京");
        }
        System.out.println("-----------追加後----------");
        System.out.println(jsonArr.toString());
    }
}

これを動かすとこんな風になります。

-----------追加前----------
[{"年齢":"30","名前":"山田太郎"},{"年齢":"20","名前":"佐藤二朗"}]
-----------追加後----------
[{"年齢":"30","名前":"山田太郎","出身地":"東京"},{"年齢":"20","名前":"佐藤二朗","出身地":"東京"}]

値(出身地:東京)が追加されていますね。

こんな風に、forループやJsonArrayと合わせると、より実践的なコードになりますよ。

 

Javaのスレッド作成、思い出せなかったら、以下の記事もどうぞ!

www.toyo104-memo.com

 

Junitで自動テストに挑戦してみませんか?

www.toyo104-memo.com