首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

这个货色咋整呢?使用C#自带的Json,而不是用第三方的

2014-01-19 
这个东西咋整呢?使用C#自带的Json,而不是用第三方的!我看了关于Json的资料,发现很多资料使用的都是第三方

这个东西咋整呢?使用C#自带的Json,而不是用第三方的!
我看了关于Json的资料,发现很多资料使用的都是第三方的工具实现,但是我只想使用微软自带的Json工具来做!
以下的代码是我从某网页中读取出来的,A项的数据有很多,大概有几千条,我只列出来几个,如果我现在想输出如下格式数据:
A的平均数
B的平均数
C的平均数
D的值
DataTime的值
C#怎么写呢?这个货色咋整呢?使用C#自带的Json,而不是用第三方的


{
    "details": [
        {
            "A": [
                0,
                113237,
                5790,
                2128
            ],
            "DataTime": 1389542400000,
            "B": [
                0,
                289277,
                61086
            ],
            "C": [
                26567,
                27263
            ],
            "D": false
}


[解决办法]
给你写了一个例子。

假设先创建一个数据文件 data.txt,内容为
{
    "details": [
        {
            "A": [
                0,
                113237,
                5790,
                2128
            ],
            "DataTime": 1389542400000,
            "B": [
                0,
                289277,
                61086
            ],
            "C": [
                26567,
                27263
            ],
            "D": false
        },
        {
            "A": [
                0,
                11323437,
                5720,
                2128
            ],
            "DataTime": 1389542400000,
            "B": [
                0,
                289277,
                61086


            ],
            "C": [
                26567,
                27263
            ],
            "D": true
        },
]
}



using System;
using System.IO;
using System.Linq;
using System.Runtime.Serialization.Json;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            var sw = new DataContractJsonSerializer(typeof(TB));
            var str = File.ReadAllText("data.txt");
            var obj = (TB)sw.ReadObject(new MemoryStream(Encoding.Unicode.GetBytes(str)));
            var n = 0;
            foreach (var x in obj.details)
            {
                Console.WriteLine("第{0}个对象:", ++n);
                Console.WriteLine("A的平均数={0}", x.A.Average());
                Console.WriteLine("D的值={0}", x.D);
                Console.WriteLine();
            }
            Console.ReadKey();
        }

    }

    public class TB
    {
        public TA[] details { get; set; }
    }

    public class TA
    {
        public int[] A { get; set; }
        public long DateTime { get; set; }
        public int[] B { get; set; }
        public int[] C { get; set; }
        public bool D { get; set; }
    }

}

热点排行