// 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,步骤是怎么做的等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)