Anonymous
Newtonsoft json ошибка преобразование значения {null} tep 'System.int32'
Сообщение
Anonymous » 27 июн 2025, 07:18
При выполнении запроса Ajax я получаю следующую ошибку: < /p>
Ошибка преобразования значения {null} для ввода 'System.int32'. PATH '[5] .tabid', Line 1, положение 331. < /P>
< /blockquote>
Ошибка происходит во второй строке моего процесса -завода (...) < /code> < /p>
Код: Выделить всё
public void ProcessRequest (HttpContext context) {
string strJson = new StreamReader(context.Request.InputStream).ReadToEnd();
List elements = JsonConvert.DeserializeObject(strJson);
// (...)
}
< /code>
отладчик говорит, что это содержание strjson < /code>: < /p>
[{
"bmk": "132M1",
"state": "off",
"type": "motor",
"tabID": 8
}, {
"bmk": "158M1",
"state": "off",
"type": "motor",
"tabID": 8
}, {
"bmk": "194M1",
"state": "off",
"type": "motor",
"tabID": 8
}, {
"bmk": "198M1",
"state": "on",
"type": "motor",
"tabID": 8
}, {
"bmk": "202M1",
"state": "off",
"type": "motor",
"tabID": 8
}, {
"bmk": "test-m",
"state": "on",
"type": "motor",
"tabID": null
}, {
"bmk": "158M1-2",
"state": "off",
"type": "motor",
"tabID": 2
}, {
"bmk": "100M1",
"state": "on_right",
"type": "screwconveyor",
"tabID": 8
}, {
"bmk": "152M1",
"state": "on",
"type": "screwconveyor",
"tabID": 8
}, {
"bmk": "192M1",
"state": "on_left",
"type": "screwconveyor",
"tabID": 8
}, {
"bmk": "196M1",
"state": "off",
"type": "screwconveyor",
"tabID": 8
}, {
"bmk": "2000M1",
"state": "on_left",
"type": "screwconveyor",
"tabID": 8
}, {
"bmk": "74M1",
"state": "off",
"type": "screwconveyor",
"tabID": 8
}, {
"bmk": "76M1",
"state": "off",
"type": "screwconveyor",
"tabID": 8
}, {
"bmk": "80M1",
"state": "off",
"type": "screwconveyor",
"tabID": 8
}, {
"bmk": "82M1",
"state": "off",
"type": "screwconveyor",
"tabID": 8
}, {
"bmk": "86M1",
"state": "off",
"type": "screwconveyor",
"tabID": 8
}, {
"bmk": "90M1",
"state": "off",
"type": "screwconveyor",
"tabID": 8
}, {
"bmk": "94M1",
"state": "off",
"type": "screwconveyor",
"tabID": 8
}, {
"bmk": "95M1",
"state": "off",
"type": "screwconveyor",
"tabID": 8
}, {
"bmk": "96M1",
"state": "off",
"type": "screwconveyor",
"tabID": 8
}, {
"bmk": "102Y1",
"state": "closed",
"type": "ventile",
"tabID": 8
}, {
"bmk": "104Y1",
"state": "open",
"type": "ventile",
"tabID": 8
}, {
"bmk": "112Y2",
"state": "closed",
"type": "ventile",
"tabID": 8
}, {
"bmk": "114Y2",
"state": "closed",
"type": "ventile",
"tabID": 8
}, {
"bmk": "120Y1",
"state": "closed",
"type": "ventile",
"tabID": 8
}, {
"bmk": "122Y1",
"state": "closed",
"type": "ventile",
"tabID": 8
}, {
"bmk": "128Y2",
"state": "closed",
"type": "ventile",
"tabID": 8
}, {
"bmk": "146Y1_2",
"state": "closed",
"type": "ventile",
"tabID": 8
}, {
"bmk": "148Y2",
"state": "closed",
"type": "ventile",
"tabID": 8
}, {
"bmk": "156Y1",
"state": "closed",
"type": "ventile",
"tabID": 8
}, {
"bmk": "180Y1",
"state": "open",
"type": "ventile",
"tabID": 8
}, {
"bmk": "182Y1",
"state": "closed",
"type": "ventile",
"tabID": 8
}, {
"bmk": "184Y1",
"state": "open",
"type": "ventile",
"tabID": 8
}, {
"bmk": "206Y1",
"state": "open",
"type": "ventile",
"tabID": 8
}, {
"bmk": "208Y1",
"state": "closed",
"type": "ventile",
"tabID": 8
}, {
"bmk": "72Y2",
"state": "closed",
"type": "ventile",
"tabID": 8
}, {
"bmk": "78Y2",
"state": "open",
"type": "ventile",
"tabID": 8
}, {
"bmk": "84Y2",
"state": "closed",
"type": "ventile",
"tabID": 8
}, {
"bmk": "88Y2",
"state": "closed",
"type": "ventile",
"tabID": 8
}, {
"bmk": "92Y2",
"state": "closed",
"type": "ventile",
"tabID": 8
}, {
"bmk": "95_1Y1",
"state": "blocked",
"type": "ventile",
"tabID": 8
}, {
"bmk": "17H1",
"state": "on",
"type": "lamp",
"tabID": 8
}, {
"bmk": "l1",
"state": "on",
"type": "lamp",
"tabID": 8
}, {
"bmk": "17H1-2",
"state": "on",
"type": "lamp",
"tabID": 2
}, {
"bmk": "106M1",
"state": "on",
"type": "elevator",
"tabID": 8
}, {
"bmk": "154M1",
"state": "off",
"type": "elevator",
"tabID": 8
}, {
"bmk": "164M1",
"state": "off",
"type": "rotaryvalve",
"tabID": 8
}]
< /code>
class elementToupdate < /code> is < /p>
public class ElementToUpdate
{
public ElementType type;
public String bmk;
public string state;
public int tabID;
public ElementToUpdate()
{
}
public ElementToUpdate(ElementType type, String bmk, string state, int tabID)
{
this.type = type;
this.bmk = bmk;
this.state = state;
this.tabID = tabID;
}
}
< /code>
Итак, мой вопрос: как решить эту проблему? Если я правильно понимаю сообщение об ошибке, то он говорит, что Tabid 5 -го объекта JSON в сериализованном массиве null . Но, как вы можете видеть, это не так. Кроме того, elementToupdate.tabid не int32 , но int . Я что -то пропустил? Я каким -то образом упустил из виду это, потому что во -первых, моя строка JSON не была отформатирована, когда я проверил, а во -вторых, потому что [5] означает «6 -й элемент массива» (который, как я утверждал, на самом деле).
Подробнее здесь:
https://stackoverflow.com/questions/418 ... stem-int32
1750997924
Anonymous
При выполнении запроса Ajax я получаю следующую ошибку: < /p> Ошибка преобразования значения {null} для ввода 'System.int32'. PATH '[5] .tabid', Line 1, положение 331. < /P> < /blockquote> Ошибка происходит во второй строке моего процесса -завода (...) < /code> < /p> [code]public void ProcessRequest (HttpContext context) { string strJson = new StreamReader(context.Request.InputStream).ReadToEnd(); List elements = JsonConvert.DeserializeObject(strJson); // (...) } < /code> отладчик говорит, что это содержание strjson < /code>: < /p> [{ "bmk": "132M1", "state": "off", "type": "motor", "tabID": 8 }, { "bmk": "158M1", "state": "off", "type": "motor", "tabID": 8 }, { "bmk": "194M1", "state": "off", "type": "motor", "tabID": 8 }, { "bmk": "198M1", "state": "on", "type": "motor", "tabID": 8 }, { "bmk": "202M1", "state": "off", "type": "motor", "tabID": 8 }, { "bmk": "test-m", "state": "on", "type": "motor", "tabID": null }, { "bmk": "158M1-2", "state": "off", "type": "motor", "tabID": 2 }, { "bmk": "100M1", "state": "on_right", "type": "screwconveyor", "tabID": 8 }, { "bmk": "152M1", "state": "on", "type": "screwconveyor", "tabID": 8 }, { "bmk": "192M1", "state": "on_left", "type": "screwconveyor", "tabID": 8 }, { "bmk": "196M1", "state": "off", "type": "screwconveyor", "tabID": 8 }, { "bmk": "2000M1", "state": "on_left", "type": "screwconveyor", "tabID": 8 }, { "bmk": "74M1", "state": "off", "type": "screwconveyor", "tabID": 8 }, { "bmk": "76M1", "state": "off", "type": "screwconveyor", "tabID": 8 }, { "bmk": "80M1", "state": "off", "type": "screwconveyor", "tabID": 8 }, { "bmk": "82M1", "state": "off", "type": "screwconveyor", "tabID": 8 }, { "bmk": "86M1", "state": "off", "type": "screwconveyor", "tabID": 8 }, { "bmk": "90M1", "state": "off", "type": "screwconveyor", "tabID": 8 }, { "bmk": "94M1", "state": "off", "type": "screwconveyor", "tabID": 8 }, { "bmk": "95M1", "state": "off", "type": "screwconveyor", "tabID": 8 }, { "bmk": "96M1", "state": "off", "type": "screwconveyor", "tabID": 8 }, { "bmk": "102Y1", "state": "closed", "type": "ventile", "tabID": 8 }, { "bmk": "104Y1", "state": "open", "type": "ventile", "tabID": 8 }, { "bmk": "112Y2", "state": "closed", "type": "ventile", "tabID": 8 }, { "bmk": "114Y2", "state": "closed", "type": "ventile", "tabID": 8 }, { "bmk": "120Y1", "state": "closed", "type": "ventile", "tabID": 8 }, { "bmk": "122Y1", "state": "closed", "type": "ventile", "tabID": 8 }, { "bmk": "128Y2", "state": "closed", "type": "ventile", "tabID": 8 }, { "bmk": "146Y1_2", "state": "closed", "type": "ventile", "tabID": 8 }, { "bmk": "148Y2", "state": "closed", "type": "ventile", "tabID": 8 }, { "bmk": "156Y1", "state": "closed", "type": "ventile", "tabID": 8 }, { "bmk": "180Y1", "state": "open", "type": "ventile", "tabID": 8 }, { "bmk": "182Y1", "state": "closed", "type": "ventile", "tabID": 8 }, { "bmk": "184Y1", "state": "open", "type": "ventile", "tabID": 8 }, { "bmk": "206Y1", "state": "open", "type": "ventile", "tabID": 8 }, { "bmk": "208Y1", "state": "closed", "type": "ventile", "tabID": 8 }, { "bmk": "72Y2", "state": "closed", "type": "ventile", "tabID": 8 }, { "bmk": "78Y2", "state": "open", "type": "ventile", "tabID": 8 }, { "bmk": "84Y2", "state": "closed", "type": "ventile", "tabID": 8 }, { "bmk": "88Y2", "state": "closed", "type": "ventile", "tabID": 8 }, { "bmk": "92Y2", "state": "closed", "type": "ventile", "tabID": 8 }, { "bmk": "95_1Y1", "state": "blocked", "type": "ventile", "tabID": 8 }, { "bmk": "17H1", "state": "on", "type": "lamp", "tabID": 8 }, { "bmk": "l1", "state": "on", "type": "lamp", "tabID": 8 }, { "bmk": "17H1-2", "state": "on", "type": "lamp", "tabID": 2 }, { "bmk": "106M1", "state": "on", "type": "elevator", "tabID": 8 }, { "bmk": "154M1", "state": "off", "type": "elevator", "tabID": 8 }, { "bmk": "164M1", "state": "off", "type": "rotaryvalve", "tabID": 8 }] < /code> class elementToupdate < /code> is < /p> public class ElementToUpdate { public ElementType type; public String bmk; public string state; public int tabID; public ElementToUpdate() { } public ElementToUpdate(ElementType type, String bmk, string state, int tabID) { this.type = type; this.bmk = bmk; this.state = state; this.tabID = tabID; } } < /code> Итак, мой вопрос: как решить эту проблему? Если я правильно понимаю сообщение об ошибке, то он говорит, что Tabid [/code] 5 -го объекта JSON в сериализованном массиве null . Но, как вы можете видеть, это не так. Кроме того, elementToupdate.tabid не int32 , но int . Я что -то пропустил? Я каким -то образом упустил из виду это, потому что во -первых, моя строка JSON не была отформатирована, когда я проверил, а во -вторых, потому что [5] означает «6 -й элемент массива» (который, как я утверждал, на самом деле). Подробнее здесь: [url]https://stackoverflow.com/questions/41873274/newtonsoft-json-error-converting-value-null-to-type-system-int32[/url]