Я пытаюсь десериализовать Jsonstring для C# listObject. Данные поступают из JavaScript с:Как десериализовать Jsonstring в C# listObject
params = "data=" + JSON.stringify(queryResult.$$rows);
XHR.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
XHR.setRequestHeader("Content-length", params.length);
XHR.setRequestHeader("Connection", "close");
XHR.send(params);
Тогда в asp.net попытаться десериализации Jsonstring с:
public class HomeController : Controller
{
[HttpPost]
public ActionResult doWork(string data)
{
var dump = JsonConvert.DeserializeObject<List<RootObject>>(data);
return new EmptyResult();
}
}
public class RootObject
{
public string data { get; set; }
public string text { get; set; }
}
Если я смотрю в локальных данных variabel. Я нашел правильный jsong строку:
[
[
{
"data":"Australia",
"text":"Australia"
}
],
[
{
"data":"China",
"text":"China"
}
],
[
{
"data":"Hong Kong",
"text":"Hong Kong"
}
],
[
{
"data":"Indonesia",
"text":"Indonesia"
}
],
[
{
"data":"Netherlands",
"text":"Netherlands"
}
]
]
Когда asp.net пытается выполнить JsonConvert.DeserializeObject> (данных); Виля возвращает сообщение об ошибке:
JsonSerializationException был необработанным пользователем кодом исключения типа «Newtonsoft.Json.JsonSerializationException» occred в newTonisoft.Json.ddl, но не был обработан в пользовательском коде
Дополнительная информация: Невозможно десериализовать текущий массив JSON (например, [1,2,3]) в тип 'maps.Controllers.RootObject', потому что для типа требуется объект JSON (например, {"name": "value"}) для десериализации правильно.
Как исправить это? и является ли это правильным способом javascript?
'Список []' Ваш формат JSON –
вы смотрели на другие ответы на StackOverflow ли? Как этот: http://stackoverflow.com/questions/17762032/cannot-deserialize-the-current-json-array-e-g-1-2-3-into-type –