c# Json List DataTable 数据相互转换

c# Json List<T> DataTable 数据相互转换



最近在项目中用到的相关Json的数据转换



 



List<T>转Json



?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

public static string Obj2Json<T>(T data)

{

    try

    {

        System.Runtime.Serialization.Json.DataContractJsonSerializer serializer = new System.Runtime.Serialization.Json.DataContractJsonSerializer(data.GetType());

        using (MemoryStream ms = new MemoryStream())

        {

            serializer.WriteObject(ms, data);

            return Encoding.UTF8.GetString(ms.ToArray());

        }

    }

    catch

    {

        return null;

    }

}

Json转List<T>



?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

public static Object Json2Obj(String json,Type t)

{

    try

    {

        System.Runtime.Serialization.Json.DataContractJsonSerializer serializer = new System.Runtime.Serialization.Json.DataContractJsonSerializer(t);

        using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(json)))

        {

            

            return  serializer.ReadObject(ms);

        }

    }

    catch

    {

        return null;

    }

}

 

DataTable 转Json



?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

public static string DataTable2Json(DataTable dt)

{

    if (dt.Rows.Count == 0)

    {

        return "";

    }

 

    StringBuilder jsonBuilder = new StringBuilder();

    // jsonBuilder.Append("{"); 

    //jsonBuilder.Append(dt.TableName.ToString());  

    jsonBuilder.Append("[");//转换成多个model的形式

    for (int i = 0; i < dt.Rows.Count; i++)

    {

        jsonBuilder.Append("{");

        for (int j = 0; j < dt.Columns.Count; j++)

        {

            jsonBuilder.Append("\"");

            jsonBuilder.Append(dt.Columns[j].ColumnName);

            jsonBuilder.Append("\":\"");

            jsonBuilder.Append(dt.Rows[i][j].ToString());

            jsonBuilder.Append("\",");

        }

        jsonBuilder.Remove(jsonBuilder.Length - 1, 1);

        jsonBuilder.Append("},");

    }

    jsonBuilder.Remove(jsonBuilder.Length - 1, 1);

    jsonBuilder.Append("]");

    //  jsonBuilder.Append("}");

    return jsonBuilder.ToString();

}

单个对象转JSON



 



?

1

2

3

4

5

6

7

8

9

public static T Json2Obj<T>(string json) 

{

    T obj = Activator.CreateInstance<T>();

    using (System.IO.MemoryStream ms = new System.IO.MemoryStream(System.Text.Encoding.UTF8.GetBytes(json)))

    {

        System.Runtime.Serialization.Json.DataContractJsonSerializer serializer = new System.Runtime.Serialization.Json.DataContractJsonSerializer(obj.GetType());

        return (T)serializer.ReadObject(ms);

    }

}

绿色通道: 

  

你可能感兴趣的:(Datatable)