Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.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 如何在映射中存储多个值(在运行时)并再次获取单个值 Iterator searchGetResponseIterator=searchGetResponse.entrySet().Iterator(); objectobj=null; 对象数据选择器=null; while(searchGetResponseIterator.hasNext()){ Map.Entry searchGetResponseElement=(Map.Entry)searchGetResponseIterator.next(); if(searchGetResponseElement.getKey().equals(“seSearch”)){ obj=searchGetResponseElement.getValue(); } }_Java_List_Dictionary_Automation_Runtime - Fatal编程技术网

Java 如何在映射中存储多个值(在运行时)并再次获取单个值 Iterator searchGetResponseIterator=searchGetResponse.entrySet().Iterator(); objectobj=null; 对象数据选择器=null; while(searchGetResponseIterator.hasNext()){ Map.Entry searchGetResponseElement=(Map.Entry)searchGetResponseIterator.next(); if(searchGetResponseElement.getKey().equals(“seSearch”)){ obj=searchGetResponseElement.getValue(); } }

Java 如何在映射中存储多个值(在运行时)并再次获取单个值 Iterator searchGetResponseIterator=searchGetResponse.entrySet().Iterator(); objectobj=null; 对象数据选择器=null; while(searchGetResponseIterator.hasNext()){ Map.Entry searchGetResponseElement=(Map.Entry)searchGetResponseIterator.next(); if(searchGetResponseElement.getKey().equals(“seSearch”)){ obj=searchGetResponseElement.getValue(); } },java,list,dictionary,automation,runtime,Java,List,Dictionary,Automation,Runtime,要在地图中存储“obj”。在obj中,我有这个>> {"columns":[{"exp":{"$ali":"t2acName"},"ali":"sourceacName"},"**id**":"4c99eedc836adbeefd0e10db76a","**table**":"public.4c99eedc836adbeefd0e10db76a","fieldIds":["0336e7c7-b236-41b7-8ae8-194dcfc49693","369bc4de-b220-41a2-a7be

要在地图中存储
“obj”
。在obj中,我有这个>>

{"columns":[{"exp":{"$ali":"t2acName"},"ali":"sourceacName"},"**id**":"4c99eedc836adbeefd0e10db76a","**table**":"public.4c99eedc836adbeefd0e10db76a","fieldIds":["0336e7c7-b236-41b7-8ae8-194dcfc49693","369bc4de-b220-41a2-a7be-090c6386aa2e","37926ca2-044f-44f2-a349-0f2e1b61f120","2310dcca-010f-4830-b300-01fb00d2d15e","306554be-92b3-41a3-bb24-b59f4adc8b79","21cdee98-e3b4-4da9-a502-587c0a221413","1f26c177-944f-4378-9e26-8ee0882221cc","13532fa7-8320-4cc1-90fb-aa8fcc3f5f6f","16d3a857-e8d5-4172-87f5-a149187ec409",],"executionQueue":[{"flow":0,"start":1574674632999,"count":0,"rEnd":1574676432999,"status":"done"},{"flow":0,"start":1574620200000,"count":0,"rEnd":1574674632999,"status":"done"}]}

我想再次从表中获取idtable

一种更简单的方法是将对象字符串转换为映射并获取字段

if(searchGetResponseElement.getKey().equals("seSearch")) {
   obj = searchGetResponseElement.getValue();
   ObjectMapper objectMapper = new ObjectMapper();
   HashMap responseMap = objectMapper.readValue(obj.toString(), HashMap.class);
}
一旦有了
响应映射
,就可以检查该对象并从中获取所需的层次结构

例如:
((Map)((List)responseMap.get(“columns”).get(0)).get(“id”)


注意:
上述示例可能无法准确表示您的响应模型。

您知道obj的格式

{"**id**":"4c99eedc836adbeefd0e10db76a","**table**":"public.
看起来在id出现的位置和table出现在字符串/json中的位置是一致的

查看RegexJava教程,创建一个用于提取id和表的教程


地图中存储了什么?字符串还是自定义类实例?在map中,我们以键和值格式存储响应体。在其中一个键中,我们获得的值与此obj中的值相同,因此现在我要获取id和表值。您需要使用
ObjectMapper
并将此响应字符串转换为映射并获取值。ObjectMapper类型中的方法readValue(JsonParser,Class)不适用于参数(Object,Class)您能否尝试使用
objectMapper.readValue(obj.toString(),HashMap.class)
?请注意,OP的示例实际上不是一个有效的JSON