① 前端開發中如何解析json數據
序列化吧,json字元串可以通過string.parse 方法轉換為json對象,然後在一個循環中就可以拿到其中的值。
② go語言怎樣把json格式的數據發給前端jquery處理
這個東西跟語言沒關系,你要搞清楚http的流程,在你這種情況下,go語言寫的程序是作為http server,jquery作為瀏覽器中運行的腳本,你可以使用jquery向伺服器發送ajax請求,伺服器返回json數據就可以了, http.Handle("/json", fooHandler)
http.HandleFunc("/test", func(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "這里寫上你的json數據就行了")
})
log.Fatal(http.ListenAndServe(":8080", nil))
對於jquery就
$.get("/test/json",function(m){alert(m);});
就可以了
③ 前端返回的json數據怎麼處理
你可以寫一個介面,所有的service來繼承這個介面, public interface IService { void text()throws Exception;}
④ 如何將數據以json格式傳給前端
將數據以json格式傳給前端:
function generateDtb() {
//寫入
var txtName = document.getElementById("txtName").value;
//創建數組
var dtb = new Array();
//通過循環把數據寫入到數組並返回
for (var i = 0; i < firstGroup.length; i++) {
var row = new Object();
row.Name = txtName;
row.fullMoney = firstGroup[i].value;
row.discount = secondGroup[i].value;
dtb.push(row);
}
return dtb;
}
把數組轉換成json串傳入到後台:
$(function () {
//點擊botton1
$("#lbtnOK").click(function () {
var url = "DiscountManger.aspx?ajax=1";
var dtb = generateDtb();
// var strName = document.getElementById("txtName").value;
if (dtb == null)
{ }
else {
//序列化對象
var postdata = JSON.stringify(dtb);
//非同步請求
$.post(url, { json: postdata }, function (json) {
if (json) {
jBox.tip("添加成功!", "提示");
location.reload();
}
else {
jBox.tip("添加失敗!", "提示");
location.reload();
}
}, "json")
}
});
});
在後台的操作:
首先判斷是否需要傳輸數據
if (!IsPostBack)
{
//判斷是否非同步請求
if (Request.QueryString["ajax"] == "1")
{
ProcessRequest();
}
在這里進行對數據的處理:
/// <summary>
/// 處理非同步請求
/// </summary>
private void ProcessRequest()
{
//存入要填寫的策略
ArrayList arrDiscount = new ArrayList();
Response.ContentType = "text/html";
string json = Request.Form["json"];
//反序列化DataTable
if (json == null)
{
return;
}
else
{
DataTable newdtb = Json2Dtb(json);
for (int i = 0; i < newdtb.Rows.Count; i++)
{
Entity.StrategyDiscount enStrategyDiscount = new Entity.StrategyDiscount();
//打折方案名
enStrategyDiscount.name = newdtb.Rows[i]["Name"].ToString();
//商店ID
enStrategyDiscount.shopId = long.Parse(LoginInfo.ShopID);
enStrategyDiscount.fullMoney = Convert.ToDecimal(newdtb.Rows[i]["fullMoney"].ToString());
enStrategyDiscount.discount = Convert.ToDecimal(newdtb.Rows[i]["discount"].ToString());
//寫入數據到數組
arrDiscount.Add(enStrategyDiscount);
}
//寫入數據到資料庫
IStrategyBLL strategy = new StrategyBLL();
if (strategy.AddStrategyDiscount(arrDiscount))
{
Response.Write("true");
Response.End();
}
else
{
Response.Write("false");
Response.End();
}
}
這里,我們需要把json轉換成datatable
/// <summary>
/// Json轉DataTable
/// </summary>
/// <param name="json"></param>
/// <returns></returns>
private DataTable Json2Dtb(string json)
{
JavaScriptSerializer jss = new JavaScriptSerializer();
ArrayList dic = jss.Deserialize<ArrayList>(json);
DataTable dtb = new DataTable();
if (dic.Count > 0)
{
foreach (Dictionary<string, object> drow in dic)
{
if (dtb.Columns.Count == 0)
{
foreach (string key in drow.Keys)
{
dtb.Columns.Add(key, drow[key].GetType());
}
}
DataRow row = dtb.NewRow();
foreach (string key in drow.Keys)
{
row[key] = drow[key];
}
dtb.Rows.Add(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 dtb.Rows)
{
Dictionary<string, object> drow = new Dictionary<string, object>();
foreach (DataColumn col in dtb.Columns)
{
drow.Add(col.ColumnName, row[col.ColumnName]);
}
dic.Add(drow);
}
return jss.Serialize(dic);
}
然後寫回到前台
/// <summary>
/// 處理非同步請求
/// </summary>
private void ProcessRequest()
{
Response.ContentType = "text/html";
string json = Request.Form["json"];
//反序列化DataTable
DataTable newdtb = Json2Dtb(json);
//序列化DataTable為JSON
string back = Dtb2Json(newdtb);
Response.Write(back);
Response.End();
}
在前台接受顯示:
$(function() {
//點擊botton1
$("#botton1").click(function() {
createTable(json);
});
});
//顯示Json中的數據
function createTable(json) {
var table = $("<table border='1'></table>");
for (var i = 0; i < json.length; i++) {
o1 = json[i];
var row = $("<tr></tr>");
for (key in o1) {
var td = $("<td></td>");
td.text(o1[key].toString());
td.appendTo(row);
}
row.appendTo(table);
}
table.appendTo($("#back"));
}
⑤ 怎樣在前端解析由後端傳輸過來的json
將json字元串兒裝換成json對象,然後就可以訪問其中的數據了。或者直接轉換成對象後使用for循環或者foreach進行遍歷
⑥ 從mysql獲取json數據,前端怎麼處理轉換解析json類型
看你用生么語言,但高級語言都有專門的類庫或函數把json字元串轉為對象或數組。比如php的json_decode函數。
⑦ 前端如何解析由list轉換過來的json數據
兩種方法,舉個例子吧:
方法一:
varstr='[{"a":"1001","b":"book1"},{"a":"1002","b":"book2"}]';
varobj=JSON.parse(str);
obj[0].b
方法二:
varstr='[{"a":"1001","b":"book1"},{"a":"1002","b":"book2"}]';
varobj=eval(str);
obj[1].b
⑧ jsp前端頁面如何解析json數據
如果是AJAX傳來的JSON 最好是用JQUERY 指定一下就可以了啊
而且如果是局部刷新的話更好, 返回的就是一個data
就可以 data[1].name 這樣取值了, 具體的你看一下jquery的文檔就好 很簡單
⑨ 前端有什麼方便的方法解析復雜的json數據
你整個程序都有問題啊,arr是個數組,不是個對象,JSON.stringify()後還是個空數組。另外jarr.result是什麼鬼?JSON.stringify()後jarr只會是個純的Json字元串了,根本拿不到任何欄位正確的json base64編碼應該是類似於下面的代碼new Buffer(JSON.stringify({"hello":"world"})).toString("base64");
⑩ 前端獲得的json數據怎麼展示
把前端獲取的json數據轉換為json對象,如果再根據json對象數據在html頁面展示。如:
varjosn=[{'name':'z','age':18},{'name':'li','age':19}];//json對象
//我這里josn對象是數組,可以遍歷,用table去顯示
varhtml='<tableid="tab"><tr><td>姓名</td><td>年齡</td></tr>';//html字元串
for(vari=0;i<json.length;i++){
varobj=json[i];
html+='<tr><td>'+obj.name+'</td><td>'+obj.age+'</td></tr>';//拼接html字元串
}
html+='</table>';//table結尾
$(document.body)append(html);//利用jQuery把table追加在body標簽的最後