static MprJson *queryCore(MprJson *obj, cchar *key, MprJson *value, int flags)
{
    MprJson     *result, *child;
    char        *property, *rest;
    int         termType;

    if (obj == 0 || key == 0 || *key == '\0' || obj->type & MPR_JSON_VALUE) {
        return 0;
    }
    result = 0;
    for (property = getNextTerm(obj, value, sclone(key), &rest, &termType); property; ) {
        if (termType & JSON_PROP_COMPOUND) {
            result = queryCompound(obj, property, rest, value, flags, termType);
            break;

        } else if (rest == 0) {
            if (!result && !value) {
                result = mprCreateJson(MPR_JSON_ARRAY);
            }
            appendItem(result, queryLeaf(obj, property, value, flags));
            break;

        } else if ((child = mprReadJsonObj(obj, property)) == 0) {
            if (value) {
                child = mprCreateJson(termType & JSON_PROP_ARRAY ? MPR_JSON_ARRAY : MPR_JSON_OBJ);
                setProperty(obj, sclone(property), child);
                obj = (MprJson*) child;
            } else {
                break;
            }
        }
        obj = (MprJson*) child;
        property = getNextTerm(obj, value, 0, &rest, &termType);
    }
    return result ? result : mprCreateJson(MPR_JSON_ARRAY);
}
NVD is only using a subset of CWE for mapping instead of the entire CWE, and the weakness type is not covered by that subset.