請問一下,如果我的代碼是這樣
resp_data = {}
payload = {}
count = 0
resp_data['payload'] = payload
resp_data['count'] = count
print(cjson.encode(resp_data))
最後會獲得
{"count":0,"payload":{}}
而不是
{"count":0,"payload":[]}
請問有什麼辦法可以解決? 可以徹底解決 cjson empty array的輸出問題?
Fang Zhou於 2012年9月6日星期四UTC+8下午7時43分15秒寫道:
> 如果说这样的话, 最暴力的办法就是,
>
> if #res == 0 then
> resp_data = "[]"
> else
> resp_data = cjson.encode(res)
>
> end
>
>
> 主要因为本来json里面[]是表示Array的,{}是表示Table的,但是lua默认就是Table,也只有table,没有Array。
>
> 2012/9/6 Chen Richard <richar...@zkteco.com>
>
>
>
>
>
> local res = {[1]={id=""}}
> local resp_data = cjson.encode(res)
>
>
>
>
>
>
>
>
> On Thu, Sep 6, 2012 at 6:14 PM, Jianhua Zhu <zhuji...@gmail.com> wrote:
>
>
> 我没有说清楚,需要返回的值为 [] 表示空。
>
>
>
> 在 2012年9月6日 下午6:12,Jianhua Zhu <zhuji...@gmail.com>写道:
>
>
>
>
>
> 谢谢,还是不行.
> 结果是 [{"id":""}]
>
>
> 在 2012年9月6日 下午6:02,Fang Zhou <ark...@gmail.com>写道:
>
>
>
>
>
>
> 哦, 那可能是res = {{["id"]=""}}, 你试试。
>
>
>
>
> On Thu, Sep 6, 2012 at 6:00 PM, Jianhua Zhu <zhuji...@gmail.com> wrote:
>
>
>
>
>
> 我测试了一下,不成。
> cjson.encode 后,结果是
> {"id":""}
>
>
> 在 2012年9月6日 下午5:46,Fang Zhou <ark...@gmail.com>写道:
>
>
>
>
>
>
>
>
> 再次不好意思, 我对lua不是太熟, 刚才的代码没测试过,下面是测试过正确的语句
> if #res == 0 then
> res = {["id"]=""}
>
>
>
>
>
>
> end
>
>
>
>
> 2012/9/6 Jianhua Zhu <zhuji...@gmail.com>
>
> res = {"id"=""}这个语法合法吗?
>
>
> 在 2012年9月6日 下午5:35,Fang Zhou <ark...@gmail.com>写道:
>
>
>
>
>
>
>
>
>
>
>
> if(res == {}){
> res = {"id"=""}
>
>
>
> }
>
>
> 2012/9/6 zhu jianhua <zhuji...@gmail.com>
>
>
>
>
>
>
>
>
>
> 我的web service api 像下面这样,当返回一个空的array时, [] , 如何生成?
> [
> {
> "id":""
> }
> ]下面的code是我的代码local res = {}local resp_data = cjson.encode(res)但是这个json的编码会返回 {}.
>
>
>
>
>
>