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(); }
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)); }