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