请问一下JSON怎么存储和提取List表或数组

请问一下JSON怎么存储和提取List表或数组,第1张

// json

List<Map<String, String>> list = new ArrayList<Map<String, String>>();

Map<String, String> map = new HashMap<String, String>();

mapput("name", "张三");

mapput("age", 22 + "");

listadd(map);

JSONObject object = new JSONObject();

try {

objectput("glass", "7年级");

objectput("stus", list);

} catch (JSONException e) {

eprintStackTrace();

}

StringBuffer sbBuffer = null;

try {

map = ((List<Map<String, String>>) objectget("stus"))get(0);

sbBuffer = new StringBuffer(mapget("name") + ":" + mapget("age"));

} catch (JSONException e) {

eprintStackTrace();

}

数据以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();

}

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

/// <summary>

/// 处理异步请求

/// </summary>

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

/// <summary>

/// Json转DataTable

/// </summary>

/// <param name="json"></param>

/// <returns></returns>

private DataTable Json2Dtb(string json)

{

JavaScriptSerializer jss = new JavaScriptSerializer();

ArrayList dic = jssDeserialize<ArrayList>(json);

DataTable dtb = new DataTable();

if (dicCount > 0)

{

foreach (Dictionary<string, object> 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数据

/// <summary>

/// DataTable转Json

/// </summary>

/// <param name="dtb"></param>

/// <returns></returns>

private string Dtb2Json(DataTable dtb)

{

JavaScriptSerializer jss = new JavaScriptSerializer();

ArrayList dic = new ArrayList();

foreach (DataRow row in dtbRows)

{

Dictionary<string, object> drow = new Dictionary<string, object>();

foreach (DataColumn col in dtbColumns)

{

drowAdd(colColumnName, row[colColumnName]);

}

dicAdd(drow);

}

return jssSerialize(dic);

}

然后写回到前台

/// <summary>

/// 处理异步请求

/// </summary>

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 = $("<table border='1'></table>");

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

o1 = json[i];

var row = $("<tr></tr>");

for (key in o1) {

var td = $("<td></td>");

tdtext(o1[key]toString());

tdappendTo(row);

}

rowappendTo(table);

}

tableappendTo($("#back"));

}

java 访问一个接口得到接口返回JSON,步骤是怎么做的

写个servlet,将结果转换成ArrayJson对象,打印出这个json就行,前端通过ajax去请求获得json数据。java转json需要用到相应的jar包,百度一下吧。

java中的接口是一种特殊的类,使用关键字interface创建。接口功能完全实现后,可以打成jar包,提供给其他公司使用。

要返回json格式数据,可以把接口中抽象方法的返回值类型规定为JSONObject或JSONString类型。这样当其他公司调用时,得到的数据就是json数据了。

另外,以jar形式提供的接口,可以通过反编译得到你的源码,如果你不希望开源,就要加密了。

访问接口时code返回2怎么回事

访问接口时code返回2怎么回事

一般情况接口有调用说明的,需要看接口提供方提供的说明。

AFNeorking 接口返回值类型不是json 时怎么做

AF>

以上就是关于请问一下JSON怎么存储和提取List表或数组全部的内容,包括:请问一下JSON怎么存储和提取List表或数组、如何将数据以json格式传给前端、java 访问一个接口得到接口返回JSON,步骤是怎么做的等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/web/9403129.html

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

发表评论

登录后才能评论

评论列表(0条)

保存