怎么在一个字段中取出自己要的数据?求大佬指点

比如我们的数据是

{"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