Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用映射中的值处理映射_Java_Json - Fatal编程技术网

Java 使用映射中的值处理映射

Java 使用映射中的值处理映射,java,json,Java,Json,对于下面的JSON { "employee": { "insurances": { "insurance1": "45.1", "insurance2": "505.5" } }, "id":61 } 我使用下面的代码片段从每个字段中检索值 Map<String, Object> insuranceDetails = (Map) ((Map) sourceAsMap.get("e

对于下面的JSON

{
    "employee": {
        "insurances": {
            "insurance1": "45.1",
            "insurance2": "505.5"
        }
    },
    "id":61
}
我使用下面的代码片段从每个字段中检索值

Map<String, Object> insuranceDetails = (Map) ((Map) sourceAsMap.get("employee"))
    .get("insurances");

insuranceDetails.get("insurance1");
insuranceDetails.get("insurance2");
Map insuranceDetails=(Map)((Map)sourceAsMap.get(“员工”))
.获得(“保险”);
保险详情。获取(“保险1”);
保险详情。获取(“保险2”);

想知道有没有更好/有效的方法来实现这一点?它必须在循环内部运行,所以我担心性能。“insurance1”和“insurance2”是固定字段。

更好的解决方案是创建一个实体类,它的属性符合json格式

class Json {
    long id;
    Map<String, Map<String, Float>> employee;
}
classjson{
长id;
地图员工;
}
甚至:

class Json {
    long id;
    Map<String, Insurrences> employee;
}

class Insurrences {
    Map<String, Float> insurrences;
}

class Converter {
    public static void main(String[] args) {
          String json = "{"employee":{"insurances”:{“insurance1”:”45.1","insurance2”:”505.5”}}, “id":61}";
          Gson gson = new Gson();
          Json jsonObj = gson.fromJson(json, Json.class);
          System.out.println(jsonObj.id);
    }
}
classjson{
长id;
地图员工;
}
类别保险{
地图保险;
}
类转换器{
公共静态void main(字符串[]args){
String json=“{”employee:{”insurances:{”insurance1:“45.1”,“insurance2:“505.5”}”,id:61};
Gson Gson=新的Gson();
Json jsonObj=gson.fromJson(Json,Json.class);
System.out.println(jsonObj.id);
}
}
产出将为:61


gson librar:

创建一个实体类是一个更好的解决方案,它的属性符合您的json格式

class Json {
    long id;
    Map<String, Map<String, Float>> employee;
}
classjson{
长id;
地图员工;
}
甚至:

class Json {
    long id;
    Map<String, Insurrences> employee;
}

class Insurrences {
    Map<String, Float> insurrences;
}

class Converter {
    public static void main(String[] args) {
          String json = "{"employee":{"insurances”:{“insurance1”:”45.1","insurance2”:”505.5”}}, “id":61}";
          Gson gson = new Gson();
          Json jsonObj = gson.fromJson(json, Json.class);
          System.out.println(jsonObj.id);
    }
}
classjson{
长id;
地图员工;
}
类别保险{
地图保险;
}
类转换器{
公共静态void main(字符串[]args){
String json=“{”employee:{”insurances:{”insurance1:“45.1”,“insurance2:“505.5”}”,id:61};
Gson Gson=新的Gson();
Json jsonObj=gson.fromJson(Json,Json.class);
System.out.println(jsonObj.id);
}
}
产出将为:61


gson librar:

可能尝试解析它:它是有效的JSON吗?您是否使用任何库来解析JSON?它是什么类型的
sourceAsMap
?它是如何构建的?为什么应该有一种更有效的方法来使用该库?它看起来已经很简洁明了了。可能尝试解析它:它是有效的JSON吗?您是否使用任何库来解析JSON儿子?什么类型的
sourceAsMap
?它是如何构建的?为什么应该有一种更有效的方法来使用该库?它看起来已经简洁明了了。