如何将列表数据转换为json格式

时间:2013-04-09 07:48:46

标签: c# json linq

大家好我想要转换包含36行值的列表我想以特定格式更改此内容

"rows": [{
    "id": 1,
    "cell": ["1", "Super Item", "300", "test", "test1", "test2,", "test3,", "test4", "test5", "test6", "test7", "test8", "test9", "test11", "test12", "test13", "test14", "test15", "test16", "test17", "test18", "test19", "test20", "test21", "test22", "test23", "test24", "test25", "test26", "test27", 0, null, false, false]
  }, {
    "id": 2,
    "cell": ["2", "Item 1", "100", "test", "test1", "test2,", "test3,", "test4", "test5", "test6", "test7", "test8", "test9", "test11", "test12", "test13", "test14", "test15", "test16", "test17", "test18", "test19", "test20", "test21", "test22", "test23", "test24", "test25", "test26", "test26", 1, 1, false, false]
  }, {
    "id": 3,
    "cell": ["3", "Sub Item 1", "50", "test", "test1", "test2,", "test3,", "test4", "test5", "test6", "test7", "test8", "test9", "test11", "test12", "test13", "test14", "test15", "test16", "test17", "test18", "test19", "test20", "test21", "test22", "test23", "test24", "test25", "test26", "test26", 2, 2, true, true]
  }, {
    "id": 4,
    "cell": ["4", "Sub Item 2", "25", "test", "test1", "test2,", "test3,", "test4", "test5", "test6", "test7", "test8", "test9", "test11", "test12", "test13", "test14", "test15", "test16", "test17", "test18", "test19", "test20", "test21", "test22", "test23", "test24", "test25", "test26", "test26", 2, 2, false, false]
  }, {
    "id": 5,
    "cell": ["5", "Sub-sub Item 1", "25", "test", "test1", "test2,", "test3,", "test4", "test5", "test6", "test7", "test8", "test9", "test11", "test12", "test13", "test14", "test15", "test16", "test17", "test18", "test19", "test20", "test21", "test22", "test23", "test24", "test25", "test26", "test26", 3, 4, true, true]
  }, {
    "id": 6,
    "cell": ["6", "Sub Item 3", "25", "test", "test1", "test2,", "test3,", "test4", "test5", "test6", "test7", "test8", "test9", "test11", "test12", "test13", "test14", "test15", "test16", "test17", "test18", "test19", "test20", "test21", "test22", "test23", "test24", "test25", "test26", "test26", 2, 2, true, true]
  }, {
    "id": 7,
    "cell": ["7", "Item 2", "200", "test", "test1", "test2,", "test3,", "test4", "test5", "test6", "test7", "test8", "test9", "test11", "test12", "test13", "test14", "test15", "test16", "test17", "test18", "test19", "test20", "test21", "test22", "test23", "test24", "test25", "test26", "test26", 0, null, false, false]
  }, {
    "id": 8,
    "cell": ["8", "Sub Item 1", "100", "test", "test1", "test2,", "test3,", "test4", "test5", "test6", "test7", "test8", "test9", "test11", "test12", "test13", "test14", "test15", "test16", "test17", "test18", "test19", "test20", "test21", "test22", "test23", "test24", "test25", "test26", "test26", 1, 7, false, false]
  }, {
    "id": 9,
    "cell": ["9", "Sub-sub Item 1", "50", "test", "test1", "test2,", "test3,", "test4", "test5", "test6", "test7", "test8", "test9", "test11", "test12", "test13", "test14", "test15", "test16", "test17", "test18", "test19", "test20", "test21", "test22", "test23", "test24", "test25", "test26", "test26", 2, 8, true, true]
  }, {
    "id": 10,
    "cell": ["10", "Sub-sub Item 2", "50", "test", "test1", "test2,", "test3,", "test4", "test5", "test6", "test7", "test8", "test9", "test11", "test12", "test13", "test14", "test15", "test16", "test17", "test18", "test19", "test20", "test21", "test22", "test23", "test24", "test25", "test26", "test26", 1, 8, false, true]
  }, {
    "id": 11,
    "cell": ["11", "Sub Item 2", "100", "test", "test1", "test2,", "test3,", "test4", "test5", "test6", "test7", "test8", "test9", "test11", "test12", "test13", "test14", "test15", "test16", "test17", "test18", "test19", "test20", "test21", "test22", "test23", "test24", "test25", "test26", "test26", 2, 8, true, true]
  }, {
    "id": 12,
    "cell": ["12", "Super Item", "300", "test", "test1", "test2,", "test3,", "test4", "test5", "test6", "test7", "test8", "test9", "test11", "test12", "test13", "test14", "test15", "test16", "test17", "test18", "test19", "test20", "test21", "test22", "test23", "test24", "test25", "test26", "test26", 0, null, false, false]
  }
]

我怎样才能将这个列表变成像json这样的格式

var res = new List<FlatProduct>();

我有一个flatproduct列表。

2 个答案:

答案 0 :(得分:2)

.NET 3.5支持JSON序列化。您必须引用System.Runtime.SerializationSystem.ServiceModel.Web

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

namespace ConsoleApplication1
{
    [DataContract]
    public class FlatProduct
    {
        [DataMember]
        public string id { get; set; }

        [DataMember]
        public string[] cell { get; set; }
    }

    class Program
    {
        static void Main(string[] args)
        {
            var flatProducts = new List<FlatProduct>
            {
                new FlatProduct { id = "1", cell = new string[2]{"1", "Super Item"} },
                new FlatProduct { id = "2", cell = new string[2]{"2", "Item 1"} }
            };
            var serializer = new DataContractJsonSerializer(flatProducts.GetType());
            using(MemoryStream stream = new MemoryStream())
            {
                serializer.WriteObject(stream, flatProducts);
                stream.Seek(0, SeekOrigin.Begin);

                using (var streamReader = new StreamReader(stream))
                {
                    string result = streamReader.ReadToEnd();
                }
            }
        }
    }
}

当然,您可以在string[]的{​​{1}}中添加更多项目。

答案 1 :(得分:1)

您应该使用codeplex中的Json.NET

http://json.codeplex.com/