我有一个JSON,如下所示
[{
"empId": 22,
"Active": true,
"dept": {
"deptID": 507,
"deptDetails": [{
"deptName": "CSE",
"CreateDate": "2010-11-15T15:27:45.263"
}]
}
}]
我正在尝试阅读下面显示的部门名称
public class TestEmp {
public static void main(String[] args) throws IOException {
String json = "[{\r\n" +
" \"empId\": 22,\r\n" +
" \"Active\": true,\r\n" +
" \"dept\": {\r\n" +
" \"deptID\": 507,\r\n" +
" \"deptDetails\": [{\r\n" +
" \"deptName\": \"CSE\",\r\n" +
" \"CreateDate\": \"2010-11-15T15:27:45.263\"\r\n" +
" }]\r\n" +
" }\r\n" +
"}]";
List<Map<String, Object>> lstMpAffOffers = convertJsonToListMap(json);
for (Map<String, Object> map : lstMpAffOffers) {
Map<String, Object> deptMap = (Map<String, Object>) map.get("dept");
List<DeptDetail> deptDetail = (List<DeptDetail>) deptMap.get("deptDetails");
System.out.println(deptDetail.get(0).getDeptName());
}
}
public static List<Map<String, Object>> convertJsonToListMap(String json) throws IOException {
ObjectMapper objectMapper = new ObjectMapper();
return objectMapper.readValue(json, new TypeReference<List<Map<String, Object>>>() {
});
}
}
部门etail.java
public class DeptDetail {
private String deptName;
public String getDeptName() {
return deptName;
}
public void setDeptName(String deptName) {
this.deptName = deptName;
}
public String getCreateDate() {
return CreateDate;
}
public void setCreateDate(String createDate) {
CreateDate = createDate;
}
private String CreateDate;
}
当我试图读取deptName时,我得到了以下错误
线程“main”java中出现异常。ClassCastException:java。util。LinkedHashMap无法强制转换为com。详细信息
首先,将其转换为对象数组,然后为每个元素转换为DeptDetail
Object[] objects=(Object[])deptMap.get("deptDetails");
List<DeptDetail> deptDetails = new ArrayList<DeptDetail>();
for (Object obj : objects) {
DeptDetail deptDetail = (DeptDetail)obj;
deptDetails.add(deptDetail);
}
您需要显式地将“deptDetails”对象转换为DeptDetail类的列表
public class TestEmp {
public static void main(String[] args) throws IOException {
String json = "[{\r\n" +
" \"empId\": 22,\r\n" +
" \"Active\": true,\r\n" +
" \"dept\": {\r\n" +
" \"deptID\": 507,\r\n" +
" \"deptDetails\": [{\r\n" +
" \"deptName\": \"CSE\",\r\n" +
" \"CreateDate\": \"2010-11-15T15:27:45.263\"\r\n" +
" }]\r\n" +
" }\r\n" +
"}]";
List<Map<String, Object>> lstMpAffOffers = convertJsonToListMap(json);
ObjectMapper objectMapper = new ObjectMapper();
for (Map<String, Object> map : lstMpAffOffers) {
Map<String, Object> deptMap = (Map<String, Object>) map.get("dept");
List<DeptDetail> deptDetail = objectMapper.convertValue(deptMap.get("deptDetails"), new TypeReference<List<DeptDetail>>(){})
System.out.println(deptDetail.get(0).getDeptName());
}
}
public static List<Map<String, Object>> convertJsonToListMap(String json) throws IOException {
ObjectMapper objectMapper = new ObjectMapper();
return objectMapper.readValue(json, new TypeReference<List<Map<String, Object>>>() {
});
}
}
我有一个JSON如下所示 我正在尝试读取deptName,如下所示 线程“main”java.lang.ClassCastException中的异常:java.util.LinkedHashMap无法强制转换为com.DeptDetail
我试图在Spring boot应用程序中传递Docker env变量。yml是这样的: 但是当我使用env变量 和 我犯了这个错误: 有什么想法吗
我知道有很多关于这个例外的帖子,但是我不能解决这个问题。我认为必须编辑类路径来解决它。我试图在hadoop架构体系中运行一个名为远程地图的程序。这是我得到的错误。 Echo$CLASSPATH给出了一个空行 cat~/。bash_简介说 更新: $HADOOP_HOME $HADOOP_CLASSPATH 有人能帮我解决这个问题吗? 谢谢
jar-cvfe-dhj。jar DefaultHadoopJobDriver 我的Hadoop作业只有一个类“DefaultHoopJobDrive”,它扩展了配置和实现工具,并将方法作为作业创建和inputpath、outpurpath集的唯一代码运行。我也在使用新的API。
我正在尝试创建类似于创建图的教程,但遇到一个错误:线程“main”java.lang.ClassCastException中的。
当我尝试在错误代码下面运行但得到错误时,我也使用了“givenArray[i]=sc.next();或givenArray[i]=sc.nextLine();”但仍然失败。我尝试了许多不同的方法,但仍然得到相同的错误。似乎扫描仪无法读取数组我需要此代码的帮助,请提前谢谢。 提供的输入:输入第一个数组的长度:4并单击Enter, 输入第二个数组的长度:4并单击Enter, 输入第一个数组:2,3,4