阅读和解析一个Json文件在C#

我花了两天的最好的一部分“faffing”关于代码示例等,试图读取一个非常大的JSON文件到一个数组在c#中,所以我可以将它拆分成一个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文件,只提取我需要的数据,并把它放入一个数组或东西,我可以使用以后放入一个数组。

如何使所有的事情更容易?

public void LoadJson()
{
    using (StreamReader r = new StreamReader("file.json"))
    {
        string json = r.ReadToEnd();
        List<Item> items = JsonConvert.DeserializeObject<List<Item>>(json);
    }
}

public class Item
{
    public int millis;
    public string stamp;
    public DateTime datetime;
    public string light;
    public float temp;
    public float vcc;
}

您甚至可以动态获取值,而无需声明Item类。

dynamic array = JsonConvert.DeserializeObject(json);
foreach(var item in array)
{
    Console.WriteLine("{0} {1}", item.temp, item.vcc);
}
http://stackoverflow.com/questions/13297563/read-and-parse-a-json-file-in-c-sharp

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:阅读和解析一个Json文件在C#