jquery json添加数据

jquery json添加数据,第1张

{

           "seeionkey": {

               1: {

                   "2": {

                       "qty": 1,

                       "works": 1,

                       "price": 500

                   },

                   "3": {

                       "qty": 1,

                       "works": 1,

                       "price": 500

                   }, "total": {

                       "qty": 2,

                       "works": 2,

                       "price": 1000

                   }

               },

               "总计": {

                   "总工时": 100,

                   "总费用": 200000

               }

           }

       }

首先你这个JSON是有点问题的。1: {这里的1表示key,请尽量用引号引上。

第二。json不是这么赋值。如下赋值是可以的。

        var xx = {"1":"2"}

        //赋值一个新的值

        xx.newValue = "3333"

        console.log(xx)

        //打印出来的值是:{ "1"="2",  "newValue"="3333"}

你试试吧

json的用途是数据传输,如对其直接进行 *** 作。效率确实慢,所以不推荐这么 *** 作,就算写出了js,用户体验也很差。所以不建议在前段进行数据 *** 作。就算要 *** 作,那json先转成array(),然后 *** 作数组。

建议,或者让后端处理好后,把更新好的json传到前段。

或者前段把需要修改的地方发给后端,由后台服务器完成,那效率会高很多。

datatable如果想转换成JSON类型的数据,是需要处理的。直接用微软提供的JavaScriptSerializer类直接序列化,会报错。

所以这里需要贴上两个方法,专门用来转换datatable的

#region DataTable转换为JSON

    /// <summary>

    /// DataTable生成JSON

    /// </summary>

    /// <param name="dt"></param>

    /// <returns></returns>

    public static string CreateJSON(DataTable dt)

    {

        Dictionary<string, object> dit = new Dictionary<string, object>()

        List<Dictionary<string, string>> list = DateTableConverter(dt)

        if (list != null)

        {

            dit[dt.TableName] = DateTableConverter(dt)

            return new JavaScriptSerializer().Serialize(dit)

        }

        else

        {

            return ""

        }

    }

    /// <summary>

    /// 将DataTable数据转化为字典类型

    /// </summary>

    /// <param name="dt"></param>

    /// <returns></returns>

    public static List<Dictionary<string, string>> DateTableConverter(DataTable dt)

    {

        List<Dictionary<string, string>> list = new List<Dictionary<string, string>>()

        string cloName = string.Empty

        foreach (DataRow dr in dt.Rows)

        {

            Dictionary<string, string> cloumn = new Dictionary<string, string>()

            foreach (DataColumn dc in dt.Columns)

            {

                cloName = dc.ColumnName

                cloumn.Add(cloName, dr[cloName].ToString())

            }

            list.Add(cloumn)

        }

        return list

    }

    #endregion

2.调用代码如下

            DataTable table = new DataTable("Table1")

            DataColumn col1 = new DataColumn("ID", typeof(string))

            DataColumn col2 = new DataColumn("Name", typeof(string))

            table.Columns.Add(col1)

            table.Columns.Add(col2)

            DataRow row1 = table.NewRow()

            row1["ID"] = "1"

            row1["Name"] = "a"

            table.Rows.Add(row1)

            DataRow row2 = table.NewRow()

            row2["ID"] = "2"

            row2["Name"] = "b"

            table.Rows.Add(row2)

            string json = CreateJSON(table)

3.json结果如下

{"Table1":[{"ID":"1","Name":"a"},{"ID":"2","Name":"b"}]}

4.数组中每一个元素,都是一行数据。只要循环遍历,然后将结果添加入你已经创建好的table中就可以了。还有疑问,继续追问吧。我先去吃饭了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/7982135.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-12
下一篇 2023-04-12

发表评论

登录后才能评论

评论列表(0条)

保存