json_extract取值问题求解

img


上述是我要用mysql的json_extract处理的数据,早使用语法的时候就是取不出来数据路径不知道哪里出的问题,看下是哪里的问题。

SELECT
    json_extract(
    { "@class" : "com.sy.gcp.ward.api.dto.plan.EventDTO",
    "adviceDrugDTOList" : [ "java.util.ArrayList",
    [[ "java.util.ArrayList",
    [{ "dose" : 50.0,
    "@class" : "com.sy.gcp.ward.api.dto.plan.eventdto.AdviceDrugDTO",
    "dosage" : "注射剂",
    "drugId" : 1602283041277988865,
    "doseWay" : "静脉滴注",
    "doseUnit" : "mg",
    "drugName" : "CS001注射液",
    "drugSpec" : "50mg/10mL",
    "spoOrOrg" : 0,
    "doseWayNo" : "jmdz",
    "doseFreque" : "once",
    "doseFrequeNo" : "once",
    "manufacturer" : "TEST生物医药有限公司",
    "doseAmountUnit" : "瓶" }]],
    [ "java.util.ArrayList",
    [{ "dose" : 5.0,
    "@class" : "com.sy.gcp.ward.api.dto.plan.eventdto.AdviceDrugDTO",
    "dosage" : "注射剂",
    "drugId" : 1602283326616489985,
    "doseWay" : "静脉滴注",
    "doseUnit" : "mL",
    "drugName" : "CS001稀释剂",
    "drugSpec" : "5mL/瓶",
    "spoOrOrg" : 0,
    "doseWayNo" : "jmdz",
    "doseFreque" : "once",
    "doseFrequeNo" : "once",
    "manufacturer" : "TEST生物医药有限公司",
    "doseAmountUnit" : "瓶" }]]]]},
'$.adviceDrugDTOList.[0].drugName' 
    ) AS strid 
FROM
    DUAL;

你这层级明显写的不对。你需要根据中括号在划分一下,应该是可以使用以下SQL语句来提取drugName的值:


$.adviceDrugDTOList[*][*].drugName