Функция WEB API перестала работать - не распознает структуру JSON - PullRequest
0 голосов
/ 22 мая 2019

Функция в моем API, которая годами работала без проблем, перестала работать неделю назад. API имеет множество функций, но только эта остановлена.

Я обновил пару пакетов NUGET, прежде чем возникла проблема. С тех пор я вернул их версии до проблемы. Других изменений в коде не было. Сайт использует Knockout, который в прошлом вызывал у меня проблемы, поэтому, возможно, JSON изменился. Объект JSON выглядит хорошо для меня. Я вставлю это ниже. В проекте используется Newtonsoft JSON.NET

Функция API должна принимать структуру JSON как класс LINQ, что она всегда делала. Тем не менее, класс отображается как Nothing при вызове API:

data As EditEqGroup

Если я изменю тип данных на Object, будет получен JSON:

data As Object

Я пытался обойти эту проблему, но мне не удалось заставить JSON.NET преобразовать его в класс LINQ. Текст ниже. Я был бы очень признателен за любые подсказки.

Текст в формате JSON:

{"EdEquipmentGroupID":"64ad9365-1e61-4133-bd8c-38ff70b0fdd6","EdEquipmentGroupName":"Incubators","EdEquipmentGroupCurrent":true,"EdEquipmentGroupRules":[{"RuleName":"Logging Interval (Minutes)","RuleUse":1,"RuleValue":"10"},{"RuleName":"Rollover (Yes or No)","RuleUse":1,"RuleValue":"Yes"},{"RuleName":"Download Interval Required (Days)","RuleUse":1,"RuleValue":"6"},{"RuleName":"Temperature Low Limit (°C)","RuleUse":1,"RuleValue":"36.7"},{"RuleName":"Temperature High Limit (°C)","RuleUse":1,"RuleValue":"37.2"},{"RuleName":"Temperature Low Permitted Consecutive (Minutes)","RuleUse":1,"RuleValue":"30"},{"RuleName":"Temperature High Permitted Consecutive (Minutes)","RuleUse":1,"RuleValue":"30"},{"RuleName":"Disable Alerts (Yes or No)","RuleUse":1,"RuleValue":"No"}]}

После форматирования для удобства чтения:

{
    "EdEquipmentGroupID": "64ad9365-1e61-4133-bd8c-38ff70b0fdd6",
    "EdEquipmentGroupName": "Incubators",
    "EdEquipmentGroupCurrent": true,
    "EdEquipmentGroupRules": [
        {
            "RuleName": "Logging Interval (Minutes)",
            "RuleUse": 1,
            "RuleValue": "10"
        },
        {
            "RuleName": "Rollover (Yes or No)",
            "RuleUse": 1,
            "RuleValue": "Yes"
        },
        {
            "RuleName": "Download Interval Required (Days)",
            "RuleUse": 1,
            "RuleValue": "6"
        },
        {
            "RuleName": "Temperature Low Limit (°C)",
            "RuleUse": 1,
            "RuleValue": "36.7"
        },
        {
            "RuleName": "Temperature High Limit (°C)",
            "RuleUse": 1,
            "RuleValue": "37.2"
        },
        {
            "RuleName": "Temperature Low Permitted Consecutive (Minutes)",
            "RuleUse": 1,
            "RuleValue": "30"
        },
        {
            "RuleName": "Temperature High Permitted Consecutive (Minutes)",
            "RuleUse": 1,
            "RuleValue": "30"
        },
        {
            "RuleName": "Disable Alerts (Yes or No)",
            "RuleUse": 1,
            "RuleValue": "No"
        }
    ]
}
...