Я потратил большую часть двух дней на "пробку" с примерами кода и т.д., пытаясь прочитать очень большой файл JSON в массив в С#, чтобы впоследствии я смог разбить его на 2d-массив для обработки.
Проблема, с которой я столкнулась, заключалась в том, что я не мог найти примеров того, как люди делают то, что я пытаюсь сделать. Это означало, что я просто немного редактировал код, надеясь на лучшее.
Мне удалось получить что-то работающее:
- Прочитайте файл. Пропустите заголовки и только прочитайте значения в массиве.
- Поместите определенное количество значений в каждую строку массива. (Так что я может позже разбить его на 2d-массив)
Это было сделано с помощью кода ниже, но он сбрасывает программу после ввода нескольких строк в массив. Это может иметь отношение к размеру файла.
// If the file extension was a jave file the following
// load method will be use else it will move on to the
// next else if statement
if (fileExtension == ".json")
{
int count = 0;
int count2 = 0;
int inOrOut = 0;
int nRecords=1;
JsonTextReader reader = new JsonTextReader(new StreamReader(txtLoaction.Text));
string[] rawData = new string[5];
while (reader.Read())
{
if (reader.Value != null)
if (inOrOut == 1)
{
if (count == 6)
{
nRecords++;
Array.Resize(ref rawData, nRecords);
//textBox1.Text += "\r\n";
count = 0;
}
rawData[count2] += reader.Value + ","; //+"\r\n"
inOrOut = 0;
count++;
if (count2 == 500)
{
MessageBox.Show(rawData[499]);
}
}
else
{
inOrOut = 1;
}
}
}
Фрагмент JSON, с которым я работаю, это:
[
{ "millis": "1000",
"stamp": "1273010254",
"datetime": "2010/5/4 21:57:34",
"light": "333",
"temp": "78.32",
"vcc": "3.54" },
]
Мне нужны значения из этого JSON. Например, мне нужно "3.54", но я бы не хотел, чтобы он печатал "vcc".
Я надеюсь, что кто-то может показать мне, как читать JSON файл и извлекать только те данные, которые мне нужны, и помещать их в массив или что-то, что я могу использовать, чтобы потом поместить в массив.