首页 > 代码库 > c# 将匿名类或者集合转Json格式数据一些方法

c# 将匿名类或者集合转Json格式数据一些方法

        要说写这个功能呢也是因为工作需要,白天呢上班写个Web页面需要ajax请求后台并将数据以Json格式传会前端,由于公司特殊性吧,不能连外网(很苦比)。所以只有等到晚上回家上网边查边写!

  public class DataToJson    {        private static System.Web.Script.Serialization.JavaScriptSerializer ser = new System.Web.Script.Serialization.JavaScriptSerializer();        //没问题        public static string GetJson(int state, string msg)        {            StringBuilder jsStr = new StringBuilder();            jsStr.Append("{");            jsStr.AppendFormat("\"State\":{0},\"Msg\":\"{1}\"", state, msg);            jsStr.Append("}");            return jsStr.ToString();        }        //没问题        public static string GetJson(string jsonName, object o)        {            StringBuilder jsStr = new StringBuilder();            jsStr.Append("{");            jsStr.AppendFormat("\"{0}\":{1}", jsonName, ser.Serialize(o));            jsStr.Append("}");            return jsStr.ToString();        }        public static string GetJson(int state, string jsonName, object o)        {            StringBuilder jsStr = new StringBuilder();            jsStr.Append("{");            jsStr.AppendFormat("\"State\":{0},\"{1}\":\"{2}\"", state, jsonName, ser.Serialize(o));            jsStr.Append("}");            return jsStr.ToString();        }        public static string GetJson(int state, string msg, string jsonName, object o)        {            StringBuilder jsStr = new StringBuilder();            jsStr.Append("{");            jsStr.AppendFormat("\"State\":{0},\"Msg\":\"{1}\",\"{2}\":{3}", state, msg, jsonName, ser.Serialize(o));            jsStr.Append("}");            return jsStr.ToString();        }    }

上面一段是我写了个公共方法类,主要还是够着JSON格式的字符串,写了几个能用上的重载方法!

    public partial class JsonTest : System.Web.UI.Page    {              protected void Page_Load(object sender, EventArgs e)        {            //var row            List<Test> ls = new List<Test>();            ls.Add(new Test() { SonOne = "AA", SonTwo = "AAA", ID = 1 });            ls.Add(new Test() { SonOne = "BB", SonTwo = "BBB", ID = 2 });            ls.Add(new Test() { SonOne = "CC", SonTwo = "CCC", ID = 3 });            ls.Add(new Test() { SonOne = "DD", SonTwo = "DDD", ID = 4 });            string options = HttpContext.Current.Request["Option"];             if (options == "Search")            {                var row = ls.Select(r => new                {                    SO1 = r.SonOne,                    SO2 = r.SonTwo                }).ToList();                           Response.Write(Common.DataToJson.GetJson(1,"Success","Row",row));                       Response.End();            }        }    }    public class Test    {        public string SonOne { get; set; }        public string SonTwo { get; set; }        public int ID { get; set; }    }

上面一段构造了一个JsonTest.aspx也面然后构造个Test数据类,这里为了方便直接写在下面。其中row就是为了构造个匿名集合好测试用。

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="JsonTest.aspx.cs" Inherits="MyTest.JsonTest" %><!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"><head runat="server">    <title></title>    <script src=http://www.mamicode.com/"Scripts/jquery-1.10.2.js"></script></head><body>    <form id="form1" runat="server">        <div>            <input type="button" id="btn" value=http://www.mamicode.com/"按钮" />        </div>    </form></body><script type="text/javascript">    $(function () {        $(#btn).click(function () {            var da = "ID=10010";            $.ajax({                type: GET,                data: { Option: "Search" },                url: /JsonTest.aspx,                dataType: JSON,                success: function (result) {                    alert(result.State);                },                error: function () {                }            });        });    });</script></html>

上面就是简单的前端测试代码!

 

当然也有Newtonsoft.Json.dll。这个也很好用,教程网上随便一搜就可以!

c# 将匿名类或者集合转Json格式数据一些方法