Функция в моем API, которая годами работала без проблем, перестала работать неделю назад. API имеет множество функций, но только эта остановлена.
Я обновил пару пакетов NUGET, прежде чем возникла проблема. С тех пор я вернул их версии до проблемы. Других изменений в коде не было. Сайт использует Knockout, который в прошлом вызывал у меня проблемы, поэтому, возможно, JSON изменился. Объект JSON выглядит хорошо для меня. Я вставлю это ниже. В проекте используется Newtonsoft JSON.NET
Функция API должна принимать структуру JSON как класс LINQ, что она всегда делала. Тем не менее, класс отображается как Nothing при вызове API:
Если я изменю тип данных на Object, будет получен JSON:
Я пытался обойти эту проблему, но мне не удалось заставить 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"
}
]
}