Пример #1
0
    public static void MyTest()
    {
        JSONArray _array = new JSONArray();

        _array.Add("1");
        _array.Add("2");
        _array.Add("3");
        _array.Add("4");
        JSONObject _object = new JSONObject();//新建json对象作为内嵌

        _object.Add("oneKey", "one");
        _object.Add("twoArray", _array);
        JSONArray jsonArray = new JSONArray();

        jsonArray.Add("2006");
        jsonArray.Add("2007");
        jsonArray.Add("2008");
        jsonArray.Add("2009");
        jsonArray.Add("2010");
        JSONObject jsonObject = new JSONObject();

        jsonObject.Add("domain", "mzwu.com");
        jsonObject.Add("two", _object);//添加json对象
        jsonObject.Add("years", jsonArray);
        Console.WriteLine("json序列化为字符串");
        Console.WriteLine(JSONConvert.SerializeObject(jsonObject));                                                                                                            //执行序列化
        //反序列化
        JSONObject json = JSONConvert.DeserializeObject("{\"domain\":\"mzwu.com\",\"two\":{\"oneKey\":\"one\",\"twoArray\":[1,2,3,4]},\"years\":[2006,2007,2008,2009,2010]}"); //执行反序列化

        if (json != null)
        {
            Console.WriteLine("将json结构的字符串反序列化为json对象并调用");
            Console.WriteLine(json["domain"]);
            Console.WriteLine(((JSONObject)json["two"])["oneKey"]);
            Console.WriteLine(((JSONArray)((JSONObject)json["two"])["twoArray"])[0]);
            Console.WriteLine(((JSONArray)json["years"])[3]);
        }
        Console.ReadLine();
    }
Пример #2
0
    private void list_lb()
    {
        JSONArray ja = new JSONArray();
        // 根据单据编号查询收费项目列表
        string       sql_lb = string.Format(@"select u.*,z.说明 
            from sq8szxlx.user_sf_lb u left join sq8szxlx.zpgl_lx_lb z on 
            (u.合同编号=z.合同编号 and z.消费项目=u.收费项目 and z.消费类型=u.收费类型)
                where u.单据编号='{0}' and not (u.收费项目 is null)", Request.Params["djbh"]);
        ResultObject r      = DBHelper.GetResult(sql_lb);

        // 本月消费总表
        string    sql1       = string.Format("select * from sq8szxlx.user_sf_zb where 单据编号='{0}'", Request.Params["djbh"]);
        RowObject user_sf_zb = DBHelper.GetRow(sql1);
        int       preNo      = int.Parse(Request.Params["djbh"].Split('_')[1]) - 1;

        // 合同信息
        sql1 = string.Format("select * from sq8szxlx.zpgl where 编码='{0}'", user_sf_zb["合同编号"]);
        RowObject zpgl = DBHelper.GetRow(sql1);

        for (int i = 0; i < r.Count; i++)
        {
            RowObject row = r[i];
            // 查询上月收费项目
            string pre_sql_lb = string.Format(@"select * from sq8szxlx.user_sf_lb where 单据编号='{0}_{1}' and 收费项目='{2}'",
                                              row["合同编号"], preNo, row["收费项目"]);
            RowObject pre_user_sf_lb = DBHelper.GetRow(pre_sql_lb);
            if (pre_user_sf_lb == null) // 没有上月读数信息,读取序号为1的单据(前期读数)
            {
                pre_sql_lb = string.Format(@"select * from sq8szxlx.user_sf_lb where 单据编号='{0}_{1}' and 收费项目='{2}'",
                                           row["合同编号"], 1, row["收费项目"]);
                pre_user_sf_lb = DBHelper.GetRow(pre_sql_lb);
            }

            double syds = -1;
            if (pre_user_sf_lb != null)
            {
                syds = Convert.ToDouble(pre_user_sf_lb["读数"]);
            }
            JSONObject jo = new JSONObject();
            jo.Add("序号", i + 1);
            string sflx = row["收费类型"].ToString();
            double sh   = Convert.ToDouble(row["损耗"]);
            double bl   = Convert.ToDouble(row["倍率"]);
            double byds = Convert.ToDouble(row["读数"]);

            jo.Add("收费项目", row["收费项目"]);
            if (sflx == "动态" && syds > -1)
            {
                jo.Add("上月读数", syds);
            }
            else
            {
                jo.Add("上月读数", "-");
            }
            if (sflx == "动态" || sflx == "单价")
            {
                jo.Add("本月读数", byds);
            }
            else
            {
                jo.Add("本月读数", "-");
            }
            jo.Add("倍率", bl);

            //损耗
            if (sflx == "动态")
            {
                jo.Add("损耗", string.Format("%{0}", sh));
            }
            else
            {
                jo.Add("损耗", "-");
            }

            //总量
            string zl = "-";
            if (bl == 0)
            {
                if (sflx == "动态" && syds > -1)
                {
                    double dsc = byds - syds;
                    zl = (dsc * (1 + sh / 100)).ToString();
                }
                else if (sflx == "单价")
                {
                    zl = byds.ToString();
                }
            }
            else
            {
                if (sflx == "动态" && syds > -1)
                {
                    double dsc = byds - syds;
                    zl = (dsc * (1 + sh / 100) * bl).ToString();
                }
                else if (sflx == "单价")
                {
                    zl = (byds * bl).ToString();
                }
            }
            jo.Add("总量", zl);
            jo.Add("值", row["值"]);
            jo.Add("滞纳金", row["滞纳金"]);
            jo.Add("费用", row["费用"]);
            jo.Add("说明", row["说明"].ToString());
            ja.Add(jo);
        }

        JSONObject result = new JSONObject();
        double     zfy    = Convert.ToDouble(user_sf_zb["总费用"]);
        double     ye     = Convert.ToDouble(user_sf_zb["余额"]);

        result.Add("success", "true");
        result.Add("data", ja);
        // 合同信息
        result.Add("合同编号", user_sf_zb["合同编号"]);
        result.Add("客户编码", zpgl["客户编码"]);
        result.Add("客户名称", zpgl["客户名称"]);
        result.Add("所属工业园", zpgl["所属工业园"]);
        result.Add("房产类型", zpgl["房产类型"]);
        result.Add("所属房产", zpgl["所属房产"]);
        // 收费信息
        result.Add("总金额", Math.Round(Convert.ToDecimal(user_sf_zb["总费用"]), 0));
        result.Add("上次结余", user_sf_zb["余额"]);
        result.Add("需要交费金额", Math.Round((zfy - ye), 0));
        Response.Write(JSONConvert.SerializeObject(result));
    }