当前位置:编程学习 > JS >>

quick-cocos2d-x解析json

先声明下我采用的是http服务器,客户端用的curl。

下面是我服务器端代码,我用的是jetty,其他服务器的都类似:

 


[java] public class JsonServlet extends HttpServlet { 
 
    private static final long serialVersionUID = 1L; 
 
    @Override 
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) 
            throws ServletException, IOException { 
        resp.setContentType("application/json"); 
        resp.setCharacterEncoding("UTF-8"); 
        Map map = new HashMap();   
        map.put( "name", "json" );   
        map.put( "bool", Boolean.TRUE );   
        map.put( "int", new Integer(1) );   
        map.put( "arr", new String[]{"a","b"} ); 
        String jsonStr=JSONArray.fromObject(map).toString(); 
        resp.getWriter().println(jsonStr); 
        resp.flushBuffer(); 
        System.out.println(jsonStr); 
    }    
 

public class JsonServlet extends HttpServlet {

 private static final long serialVersionUID = 1L;

 @Override
 protected void doPost(HttpServletRequest req, HttpServletResponse resp)
   throws ServletException, IOException {
  resp.setContentType("application/json");
  resp.setCharacterEncoding("UTF-8");
  Map map = new HashMap(); 
        map.put( "name", "json" ); 
        map.put( "bool", Boolean.TRUE ); 
        map.put( "int", new Integer(1) ); 
        map.put( "arr", new String[]{"a","b"} );
        String jsonStr=JSONArray.fromObject(map).toString();
        resp.getWriter().println(jsonStr);
        resp.flushBuffer();
        System.out.println(jsonStr);
 } 

}熟悉json的同学可以看懂我返回的json的数据。

下面是客户端lua代码:


[html] local function callback(event) 
    local ok = (event.name == "completed") 
    local request = event.request 
    local response = request:getResponseString() 
     print(response) 
    local json=require("framework.shared.json") 
    local t=json.decode(response) 
    print(t) 
end 
 
local request = network.createHTTPRequest(callback, "http://localhost:8080/json", "POST") 
request:start() 

local function callback(event)
 local ok = (event.name == "completed")
 local request = event.request
 local response = request:getResponseString()
     print(response)
 local json=require("framework.shared.json")
 local t=json.decode(response)
 print(t)
end

local request = network.createHTTPRequest(callback, "http://localhost:8080/json", "POST")
request:start()
其中http://........./json是上面servlet的响应url。

json.decode()函数会返回一个已经解析好的table也就是上面的变量t。

然后就可以通过t来访问获取到的数据了。

 

补充:移动开发 , 其他 ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,