У меня есть объект JSON, как это ...JSON Десериализация в C# для нескольких значений
{
"totalcount":1,
"files":[
{
"filename":"1.txt",
"fileContent":"Dineshkumar"
}
]
}
Я создал следующие классы в C#.
public class File
{
public string filename { get; set; }
public string fileContent { get; set; }
}
public class JSONObject
{
public int totalcount { get; set; }
public List<File> files { get; set; }
}
Я использовал следующие объекты для доступа к объекту JSON.
JavaScriptSerializer JSSfile = new JavaScriptSerializer();
JSSfile.MaxJsonLength = Int32.MaxValue;
JSONObject Content = JSSfile.Deserialize<JSONObject>(response);
Теперь моя проблема .. когда у меня есть более чем 1 файлов в объекте JSON, он отлично работает, как ожидалось. Когда у меня есть только один файл в объекте JSON, он возвращает мне 0 файлов в content
.
Как решить эту проблему?
Когда один файл указан как объект JSON, содержимое значение переменного начинается с 0.
Если написать этот фрагмент кода для решения этой проблемы,
if (Content.totalcount == 1)
{
File file = null;
file.filename = Content.files[0].filename;
file.fileContent = Content.files[0].fileContent;
File.WriteAllBytes(DestLocTxt.Text.Trim() + "\\" + file.filename, file.fileContent));
}
я получил следующее сообщение об ошибке:
An unhandled exception of type 'System.ArgumentOutOfRangeException' occurred in mscorlib.dll
Additional information: Index was out of range. Must be non-negative and less than the size of the collection.
Проблема решаемая:
{
"totalcount":1,
"files":[
{
"filename":"1.txt",
"fileContent":"Dineshkumar"
}
]
}
был ожидаемым JSON, но сервер отправляет данные в другом формате.
{
"totalcount":1,
"files": {
"filename":"1.txt",
"fileContent":"Dineshkumar"
}
}
Все проблемы, вызванные из-за этого ...
Не могли бы вы привести пример JSON, который у вас есть с несколькими файлами - проблема может быть в этом. –
Подтвердите свой JSON с помощью http://jsonlint.com/ - пример, который вы опубликовали, хорош, но я предполагаю, что другого нет. Если это верно и правильно, вы можете переключиться на [Json.NET] (http://james.newtonking.com/json), где можно найти более удобную библиотеку JSON. –
@ScottGulliver Я обновил свой вопрос, чтобы быть более понятным, из-за нумерации списков и десериализации. – Dinesh