Прочитать одну ячейку отчёта и различить NULL, пустую строку и ноль

Данные получены настоящими запросами через native-расширение cubrid. После наблюдений собственная учебная таблица удалена.

Результат выполнения
НаблюдениеРезультат
Название по aliasКабель
Нулевой остаток0
NULL: примечание отсутствуетда
Пустая строка: примечание задано пустымда
Поле по умолчанию (id)10
Строка 9 отсутствуетда
Отдельный поиск id90Зажим
Полученные строки и дополнительные наблюдения
{
    "cells": {
        "label": "Кабель",
        "zero": "0",
        "absent": null,
        "empty": ""
    },
    "default_field": "10",
    "missing_row": {
        "value": false,
        "code": 0,
        "facility": 0,
        "warning": false,
        "message_present": false
    },
    "unknown_field": {
        "value": false,
        "code": -20013,
        "facility": 3,
        "warning": true,
        "message_present": true
    },
    "whole_row": {
        "id": "10",
        "product_label": "Кабель",
        "qty": "0",
        "note": null
    },
    "targeted_by_id": [
        {
            "title": "Зажим",
            "qty": "7"
        }
    ],
    "row_indices": [
        0,
        1
    ],
    "primary_keys": [
        10,
        90
    ]
}

result.json содержит те же данные; metrics.json — проверки. Реквизиты входа в эти файлы не записываются.