测试

key类

public class KeyVal {

    private int keyId;

    private String name;

    public KeyVal(int keyId, String name) {
        this.keyId = keyId;
        this.name = name;
    }

    public int getKeyId() {
        return keyId;
    }

    public void setKeyId(int keyId) {
        this.keyId = keyId;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public int hashCode() {
        int result = 31 * keyId + name.hashCode();
        return result;
    }


    @Override
    public boolean equals(Object obj) {
        if (obj instanceof KeyVal) {
            KeyVal keyVal = (KeyVal) obj;
            if (keyVal.getName() == null | name == null) {
                return false;
            } else {
                return name.equalsIgnoreCase(keyVal.getName())&& keyVal.getKeyId()==keyId;
            }
        }
        return false;
    }

    @Override
    public String toString() {
        return "KeyVal{" +
                "keyId=" + keyId +
                ", name='" + name + '\'' +
                '}';
    }
}

namespace类

public class NamespaceVal {
    private int namespaceId;

    private String name;

    public NamespaceVal(int namespaceId, String name) {
        this.namespaceId = namespaceId;
        this.name = name;
    }

    @Override
    public int hashCode() {
        int result = 31 * namespaceId + name.hashCode();
        return result;
    }

    public int getNamespaceId() {
        return namespaceId;
    }

    public void setNamespaceId(int namespaceId) {
        this.namespaceId = namespaceId;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public boolean equals(Object obj) {
        if (obj instanceof NamespaceVal) {
            NamespaceVal namespaceVal = (NamespaceVal) obj;
            if (namespaceVal.getName() == null | name == null) {
                return false;
            } else {
                return name.equalsIgnoreCase(namespaceVal.getName())&& namespaceVal.getNamespaceId()==namespaceId;
            }
        }
        return false;
    }


    @Override
    public String toString() {
        return "NamespaceVal{" +
                "namespaceId=" + namespaceId +
                ", name='" + name + '\'' +
                '}';
    }
}

测试类

public class Test {


    public static void main(String[] args) {
        Map<KeyVal,Map<NamespaceVal,HashMap<Integer, String>>> keyToMap = new HashMap<>();

        KeyVal mainKey1 = new KeyVal(1,"一年级");
        KeyVal mainKey2 = new KeyVal(2,"二年级");

        NamespaceVal namespaceVal11 = new NamespaceVal(11,"一年一班");
        NamespaceVal namespaceVal12 = new NamespaceVal(11,"一年二班");

        NamespaceVal namespaceVal21 = new NamespaceVal(11,"二年一班");
        NamespaceVal namespaceVal22 = new NamespaceVal(11,"二年二班");

        HashMap<Integer,String> group11 = new HashMap<>();
        group11.put(1,"一年一班1组组长");
        group11.put(2,"一年一班2组组长");
        HashMap<Integer,String> group12 = new HashMap<>();
        group12.put(1,"一年二班1组组长");
        group12.put(2,"一年二班2组组长");

        HashMap<Integer,String> group21 = new HashMap<>();
        group21.put(1,"二年一班1组组长");
        group21.put(2,"二年一班2组组长");
        HashMap<Integer,String> group22 = new HashMap<>();
        group22.put(1,"二年二班1组组长");
        group22.put(2,"二年二班2组组长");


        Map<NamespaceVal,HashMap<Integer, String>> yinianji = new HashMap<>();
        yinianji.put(namespaceVal11,group11);
        yinianji.put(namespaceVal12,group12);

        Map<NamespaceVal,HashMap<Integer, String>> ernianji = new HashMap<>();
        ernianji.put(namespaceVal21,group21);
        ernianji.put(namespaceVal22,group22);


        keyToMap.put(mainKey1,yinianji);
        keyToMap.put(mainKey2,ernianji);


        Gson gson = new GsonBuilder().disableHtmlEscaping().create();
        String jsonStr = gson.toJson(keyToMap);
        System.out.println(jsonStr);



        Map<String,String> rtn = new HashMap<>();
        rtn = gson.fromJson(jsonStr,HashMap.class);

        for(String keyVal : rtn.keySet()){
//            System.out.println(keyVal);
            System.out.println(JSON.parseObject(keyVal,KeyVal.class, Feature.OrderedField));
        }

//        rtn=  JSON.parseObject(jsonStr,LinkedHashMap.class, Feature.OrderedField);
    }
}

使用的依赖

    <dependency>
        <groupId>com.google.code.gson</groupId>
        <artifactId>gson</artifactId>
        <version>2.2.4</version>
    </dependency>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值