ฉันใช้เวลาส่วนที่ดีที่สุดของ "faffing" สองวันเกี่ยวกับตัวอย่างโค้ดและอื่น ๆ พยายามอ่านไฟล์ JSON ที่มีขนาดใหญ่มากเป็นอาเรย์ใน c # ดังนั้นฉันจึงสามารถแยกมันออกเป็นอาเรย์ 2d ในภายหลังได้
ปัญหาที่ฉันพบคือฉันไม่สามารถหาตัวอย่างของคนที่ทำในสิ่งที่ฉันพยายามจะทำ นี่หมายความว่าฉันแค่แก้ไขโค้ดให้ดีที่สุด
ฉันจัดการเพื่อให้ได้งานที่จะ:
- อ่านไฟล์ Miss out header และอ่านค่าในอาเรย์เท่านั้น
- วางจำนวนที่แน่นอนของค่าในแต่ละบรรทัดของอาร์เรย์ (ดังนั้นฉันสามารถแยกมันใส่ในอาร์เรย์ 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 และแยกเฉพาะข้อมูลที่ฉันต้องการและใส่ลงในอาร์เรย์หรือสิ่งที่ฉันสามารถใช้เพื่อวางในภายหลังในอาร์เรย์