【Lua】LWT后台用JSON与 ExtJS传递数据

  要完成目录树的构建,需要前台ExtJS构筑页面,后台处理逻辑,中间由JSON传递数据。

  首先搭建后台环境:

 1 require "httpd"
 2 require "lfs"
 3
 4 request, args = ...
 5
 6 local s = {root = {
 7         text = "rootNode",
 8         expanded = true,
 9         children = {
10             {
11                 text = ‘book1‘,
12                 leaf = true
13             },
14             {
15                 text = "book2",
16                 expanded = true,
17                 children = {
18                     {
19                         text = "con1",
20                         leaf = true
21                     },{
22                         text = "con2",
23                         leaf = true
24                     }
25                 }
26             },
27             {
28                 text = "book3",
29                 expanded = true,
30                 leaf = true
31             }
32         }
33     }
34 }
35
36 local cjson = require("cjson")
37 local tJson = cjson.encode(s)
38
39 httpd.set_content_type("text/json")
40 httpd.write(tJson)

  这里虚拟了一个树数据结构s,将其打包后返回给请求方。

  然后是html部分:

 1 <html>
 2     <head>
 3         <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 4
 5         <title>ExtJS TreePanel</title>
 6         <link rel="stylesheet" type="text/css" href="../../ext-5.0.0/examples/shared/example.css" />
 7
 8
 9         <script type="text/javascript" src="../ext-5.0.0/examples/shared/include-ext.js"></script>
10         <script type="text/javascript" src="../ext-5.0.0/examples/shared/options-toolbar.js"></script>
11
12         <script type="text/javascript" src="test.js" charset="utf-8" ></script>
13
14     </head>
15     <body style=" margin: 0; padding: 0;">
16     </body>
17 </html>

  最后是ExtJS部分:

 1 Ext.require(‘Ext.tree.Panel‘)
 2
 3 Ext.onReady(function(){
 4     Ext.Ajax.request({
 5         url: ‘m.lua‘,       //后台文件path
 6         method: ‘post‘,
 7         params: {
 8             action: ‘getDir‘,
 9         },
10         success: function(response){
11             var text = response.responseText;
12             var obj = eval(‘(‘ + text + ‘)‘);
13             console.log(obj);
14         },
15         failure: function() {
16             Ext.Msg.alert("失败","失败了");
17         }
18     });
19 });

  其中response内容是这样的:

  所以可以用"response.responseText"来调用响应内容的主体。

  在数据传输流程中,json是以文本,即字符串的形式传递的,而JS操作的是JSON对象,所以,JSON对象和JSON字符串之间的相互转换是关键。

  JSON字符串转换为JSON对象:

    var obj = eval(‘(‘ + str + ‘)‘);

  这样就能获取一个可供使用的JSON对象了。

    

时间: 2024-10-01 05:09:49

【Lua】LWT后台用JSON与 ExtJS传递数据的相关文章

【Lua】Lua + LWT + ExtJS构建目录树

Lua处理后台逻辑,Lua lwt搭建后台程序,ExtJS根据后台传来的json数据构建目录树. 前台html和ExtJS代码不用多讲,直接上代码: treePanel.html 1 <html> 2 <head> 3 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 4 5 <title>ExtJS TreePanel</

ajax直接向后台传递json list结构的数据

1 $.ajax({ 2 url: CONTEXTPATH + ..., 3 data: JSON.stringify(data), 4 dataType: 'json', 5 contentType: 'application/json; charset=UTF-8', 6 type: 'post' 7 }).done(function (res) { 8 // 成功操作14 }).fail(function () { 15 // 失败操作 16 }); 传递数据data需要使用json字符串

传递给后台的Json数据解析

后台代码如下: public void ProcessRequest(HttpContext context) { context.Response.ContentType = "application/json"; HttpRequest request = context.Request; if (request.InputStream != null && request.InputStream.Length > 0) { StreamReader read

MVC中前台如何向后台传递数据------$.get(),$post(),$ajax(),$.getJSON()总结

一.引言 MVC中view向controller传递数据的时候真心是一个挺让人头疼的一件事情.因为原理不是很懂只看一写Dome,按葫芦画瓢只能理解三分吧. 二.解读Jquery个Ajax函数 $.get(),$.post(),$.ajax(),$.getJSON() 1.$.get(url,[data],[callback]) 参数说明 url:请求地址,MVC中一般为:“/QueryScores/Search/” (/controller/action/) data:请求数据列表,MVC中ac

thinkjs学习-this.assign传递数据和ajax调用后台接口

在页面加载时,就需要显示在页面上的数据,可以在后台使用this.assign赋值,在前台通过ejs等模板获取:用户点击按钮,或者触发某些事件和后台进行交互时,就需要用到ajax调用后台接口.本文通过一个例子讲述这两种方法的前后台实现.(方便起见,使用jQuery封装的ajax)' (ps:ajax调用后台接口的情形通常是用户触发事件,给后台传递一些前台的数据,然后后台根据这些数据进行相关操作,再返回前台一些数据.举个表单提交的例子,用户点击提交按钮之后,将填写的表单信息传递个后台,后台对传过来的

JSP使用JSON传递数据,注意避免中文乱码

JSP传递数据时不方便使用Java中的对象类型,一般使用JSON来传递对象. 在使用JSON时,前端js如下,注意指定dataType: var htmlobj= $.ajax({ url:"chat.do",type:"POST", data:{sayingContent:$("#textarea").val()}, dataType:"json", success: function(data){$("#said

fastJson java后台转换json格式数据

什么事JSON? JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式. 易于人阅读和编写.同时也易于机器解析和生成. 它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集. JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等

ajax往后台传json格式数据报415错误

问题描述: ajax往后台传json格式数据报415错误,如下图所示 页面代码 function saveUser(){ var uuId = document.getElementById("uuid").value; var idCard = document.getElementById("idCard").value; alert(uuId+idCard); // var result = new Object(); // result.uuId = uuI

json如何传递数据配置方式

方案一: 不使用struts2的json, 1:导入json需要的jar包:(5个) 2:在Action中写: ServletActionContext.getRequest().setCharacterEncoding("UTF-8"); ServletActionContext.getResponse().setContentType("text/html;charset=utf-8"); //查询是否是通过简记码和仓库ID进行查询,获取的唯一货物 Goods