これは何?

JSONで表すことができるデータ型

型名表記法
Integer整数123
Float実数123.0
String文字列"string" / 'string'
Objectオブジェクト{key:val}
Array配列[a,b,c]
Boolean真偽値true, false
NullNull

こいつらが、REST-API 側でどうマッピングされるか調べてみた

REST-API

@Path("map")
public class MapResource {

    @POST
    @Consumes(MediaType.APPLICATION_JSON)
    @Produces(MediaType.APPLICATION_JSON)
    public Object doSomething(LinkedHashMap<String, Object> inJson) {
        System.out.println(dumpMap(inJson));
        return inJson;
    }

    private String dumpMap(Map<String, Object> map) {
        return dumpMap(map,"  ");
    }
    private String dumpMap(Map<String, Object> map, String indent) {
        StringBuilder sb = new StringBuilder();

        sb.append(indent).append(map.getClass().getName()).append("{\n");
        map.forEach((key, val) -> {
            sb.append(indent);
            switch(val.getClass().getName()){
                case "java.util.ArrayList" :
                    sb.append(String.format("%s(%s<%s>)=%s\n"
                            , key
                            , val.getClass().getName()
                            , ((List)val).get(0).getClass().getName()
                            , val.toString()));
                    break;
                    
                case "java.util.LinkedHashMap" :
                    sb.append(String.format("%s(%s)={\n"
                            , key
                            , val.getClass().getName()));
                    sb.append(dumpMap((Map<String, Object>)val, indent + "  "));
                    break;
                    
                default:
                    sb.append(String.format("%s(%s)=%s\n"
                            , key
                            , val.getClass().getName()
                            , val.toString()));
                    break;
            }
        });
        sb.append(indent).append("}\n");

        return sb.toString();
    }
}

実行結果


Java#Glassfish


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS   sitemap
Last-modified: 2019-08-22 (木) 02:55:35 (63d)
ISBN10
ISBN13
9784061426061