JSON这个东西相信现在大家都已经不再陌生,第一次接触它时我便对它爱不释手!记得在发现JSON之间,一直使用XML结构来传递数据,但XML这个东西太麻烦了,不管是在服务端或是JS里面,写入与读入都是哪么的麻烦。而JSON实在是太方便了,通过一些开源的JSON类库可以很方便的将一个对象转换成字符串的形式来传递。
网上也有很多讲Python + JSON 的文章,但我这里要讲的是它们都没有提到的一种常用的方式。
昨晚在用Python + Django 做AJAX的东西,我自定义了一个返回值对象(ExecuteState)的类,再用JSON的方式返回到页面前端。
以前在.NET里面做类似的操作一直是在用一个叫 Json.NET 的开源类库,很方便。于是在 Python 里面我继续用这种方式,而 Django 里面也有自带一个叫 simplejson 的类。
开始想想实现这东西应该很简单,可没想到后面因为一个很小的细节让我绕了一大圈…在此写出来与大家分享,以免再次走弯路。
例子:
Python 代码: # 其它django的引用这里省略 """ summary: 返回值对象,用于返回执行状态 """ # 是否执行成功,默认是 True 成功,因为经过长期使用发现 True 用得较多 # 提示消息 # 导致不成功的标志,错误是由谁引起的 # 导致不成功的对象 [object 类型] """ summary: 得到本对象的JSON格式的字符串 """ """ summary: 将object转换成dict类型 """ return _dict """ summary: signup 视图,URLs里面的定义这里省略 """ # 提交视图处理 # 重点!验证输入的内容是否符合要求 # 不符合要求了,在这直接用 return 中断并返回 state 用 simplejson.encode 将 state 转换成 JSON # 注意!这里有用 dir(state) 这个就是我要讲的一个细节 # # 后面的提交数据库省略... # 成功消息 return state else: # signup 地址普通打开的处理