怎么将前台符json格式的数组传到后台,并接收

怎么将前台符json格式的数组传到后台,并接收,第1张

首先JSON本身就是一个字符串,不具有对象性质

两种方法

1 可以在前台处理,使用JSONparse(expr)将字符串转为对象,但是这个方法貌似对JSON格式检查的非常严格,比如双引号

2 可以在后台进行处理,使用一些JSON处理类库,比如JSONObject

数据以json格式传给前端:

function generateDtb() {

//写入

var txtName = documentgetElementById("txtName")value;

//创建数组

var dtb = new Array();

//通过循环把数据写入到数组并返回

for (var i = 0; i < firstGrouplength; i++) {

var row = new Object();

rowName = txtName;

rowfullMoney = firstGroup[i]value;

rowdiscount = secondGroup[i]value;

dtbpush(row);

}

return dtb;

}

把数组转换成json串传入到后台:

$(function () {

//点击botton1

$("#lbtnOK")click(function () {

var url = "DiscountMangeraspxajax=1";

var dtb = generateDtb();

// var strName = documentgetElementById("txtName")value;

if (dtb == null)

{ }

else {

//序列化对象

var postdata = JSONstringify(dtb);

//异步请求

$post(url, { json: postdata }, function (json) {

if (json) {

jBoxtip("添加成功!", "提示");

locationreload();

}

else {

jBoxtip("添加失败!", "提示");

locationreload();

}

}, "json")

}

});

});

在后台的 *** 作:

首先判断是否需要传输数据

if (!IsPostBack)

{

//判断是否异步请求

if (RequestQueryString["ajax"] == "1")

{

ProcessRequest();

}

在这里进行对数据的处理:

///

/// 处理异步请求

///

private void ProcessRequest()

{

//存入要填写的策略

ArrayList arrDiscount = new ArrayList();

ResponseContentType = "text/html";

string json = RequestForm["json"];

//反序列化DataTable

if (json == null)

{

return;

}

else

{

DataTable newdtb = Json2Dtb(json);

for (int i = 0; i < newdtbRowsCount; i++)

{

EntityStrategyDiscount enStrategyDiscount = new EntityStrategyDiscount();

//打折方案名

enStrategyDiscountname = newdtbRows[i]["Name"]ToString();

//商店ID

enStrategyDiscountshopId = longParse(LoginInfoShopID);

enStrategyDiscountfullMoney = ConvertToDecimal(newdtbRows[i]["fullMoney"]ToString());

enStrategyDiscountdiscount = ConvertToDecimal(newdtbRows[i]["discount"]ToString());

//写入数据到数组

arrDiscountAdd(enStrategyDiscount);

}

//写入数据到数据库

IStrategyBLL strategy = new StrategyBLL();

if (strategyAddStrategyDiscount(arrDiscount))

{

ResponseWrite("true");

ResponseEnd();

}

else

{

ResponseWrite("false");

ResponseEnd();

}

}

这里,我们需要把json转换成datatable

///

/// Json转DataTable

///

///

///

private DataTable Json2Dtb(string json)

{

JavaScriptSerializer jss = new JavaScriptSerializer();

ArrayList dic = jssDeserialize(json);

DataTable dtb = new DataTable();

if (dicCount > 0)

{

foreach (Dictionary drow in dic)

{

if (dtbColumnsCount == 0)

{

foreach (string key in drowKeys)

{

dtbColumnsAdd(key, drow[key]GetType());

}

}

DataRow row = dtbNewRow();

foreach (string key in drowKeys)

{

row[key] = drow[key];

}

dtbRowsAdd(row);

}

}

return dtb;

}

这样,就可以把数据无刷新的写入到数据库。

当然,如果我们有一个从数据库读取的datatable,如果通过json显示在前台呢。

首先,我们需要把datatable转换为json数据

///

/// DataTable转Json

///

///

///

private string Dtb2Json(DataTable dtb)

{

JavaScriptSerializer jss = new JavaScriptSerializer();

ArrayList dic = new ArrayList();

foreach (DataRow row in dtbRows)

{

Dictionary drow = new Dictionary();

foreach (DataColumn col in dtbColumns)

{

drowAdd(colColumnName, row[colColumnName]);

}

dicAdd(drow);

}

return jssSerialize(dic);

}

然后写回到前台

///

/// 处理异步请求

///

private void ProcessRequest()

{

ResponseContentType = "text/html";

string json = RequestForm["json"];

//反序列化DataTable

DataTable newdtb = Json2Dtb(json);

//序列化DataTable为JSON

string back = Dtb2Json(newdtb);

ResponseWrite(back);

ResponseEnd();

}

在前台接受显示:

$(function() {

//点击botton1

$("#botton1")click(function() {

createTable(json);

});

});

//显示Json中的数据

function createTable(json) {

var table = $("");

for (var i = 0; i < jsonlength; i++) {

o1 = json[i];

var row = $("");

for (key in o1) {

var td = $("");

tdtext(o1[key]toString());

tdappendTo(row);

}

rowappendTo(table);

}

tableappendTo($("#back"));

}

一般是这样的,先将对象类型(在js中json就是一个对象),使用jsonjs(有些浏览器支持,有些需要引入)的方法:

JSONparse(jsonstr); //可以将json字符串转换成json对象

JSONstringify(jsonobj); //可以将json对象转换成json对符串

的第二个转换成字符串,然后把字符串当作一个参数的值再为其添加一个key然后以key/value的格式将数据传到后台。

之后后台使用requestgetParameter();的方式得到json数据。

以上就是关于怎么将前台符json格式的数组传到后台,并接收全部的内容,包括:怎么将前台符json格式的数组传到后台,并接收、如何拿到前端传过来的json对象、java后台怎样获取前台的json数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/sjk/10162673.html

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

发表评论

登录后才能评论

评论列表(0条)

保存