用newLisp开发网站六 REST API返回JSON串

今天用newlisp返回JSON的时候,发现jQuery 的ajax的done始终不能工作,用always就可以。首先排除了jQuery 2.1.0的bug,然后就检查了newlisp返回的HTTP response,果然又问题。这里记录一下:

1. 要设置HTTP Response的一些信息

2. dragonfly内置了一个json库,可以将list转换成json串。

下面看个例子:

(set ‘result
     ‘(("status" 0)))

;; create new code copy on local filesystem
(define (Resource.Cc:create)
  (set ‘cpp-file-path (string SOURCE_LOCATION "/" ($POST "file_name")))
  (set ‘cpp-file-code (string SOURCE_LOCATION "/" ($POST "code")))
  (if (write-file cpp-file-path cpp-file-code)
      (begin
       (Response:content-type Response:json-type)
       (Response:status 200)
       (print (Json:lisp->json result)))
    )
)

注意

1. begin语句里面两个Response上下文的函数分别设置了返回的数据类型和HTTP Status

2.用print将HTTP reponse内容返回出去

3. Json:lisp->json 帮助将内容编程json格式。json.lsp文件在下面的目录内:

dragonfly-framework/plugins-inactive/artfulcode/


上面的例子将返回一个json串,形如:

{"status": 0}

相关API文档参考:

http://dragonfly.neocortex.io/api

用newLisp开发网站六 REST API返回JSON串

上一篇:使用ASP.NET Web Api构建基于REST风格的服务实战系列教程【六】——实现资源间的关联


下一篇:PS制作五彩水晶字体