比如我们的数据是
{"PRODUCT_ID":"CA3151FAB00M","LINE_ID":"CAPOLA00","EQP_ID":"CAPAMA40","PARAM_NAME":"Acc_CF_Y2","PARAM5_LABEL":"DEFAULT"}
这样的,我需要取出的结果是PRODUCT_ID:CA3151FAB00M和PARAM_NAME:Acc_CF_Y2 而且这个需要取的值没有固定位置,只能通过匹配来取
hql应该怎么写?
求大佬指教
要是PRODUCT_ID和PARAM_NAME不会变,就提取这两个及其冒号后面到下一个,之前的所有内容啊
转换为jsonobject,通过这两个key 取
使用 fastjson处理
@Test
public void test1() {
String s = "{\"PRODUCT_ID\":\"CA3151FAB00M\",\"LINE_ID\":\"CAPOLA00\",\"EQP_ID\":\"CAPAMA40\",\"PARAM_NAME\":\"Acc_CF_Y2\",\"PARAM5_LABEL\":\"DEFAULT\"}";
HashMap<String, String> map = JSONArray.parseObject(s, new TypeReference<HashMap<String, String>>() {
});
// 遍历所有值
map.forEach((k, v) -> System.out.println("key: " + k + " ====== "+ "value: " + v));
// 获取值
String product_id = map.get("PRODUCT_ID");
String param_name = map.get("PARAM_NAME");
System.out.println("product_id: " + product_id);
System.out.println("param_name: " + param_name);
}
运行结果
product_id: CA3151FAB00M
param_name: Acc_CF_Y2
你好,看你这个字段里数据的格式应该是个json字符串,那就可以使用hql中的get_json_object函数去获取对应的字段值;
select get_json_object(tableA.column, '$.PRODUCDID') from tableA