在Django中处理JSON的最佳和简单方法

时间:2010-05-17 02:18:19

标签: android django json parsing

作为应用程序的一部分,我们正在开发(使用android客户端和Django服务器)一个包含用户名和密码的json对象从android客户端发送到服务器,如下所示

HttpPost post = new HttpPost(URL);
 /*Adding key value pairs */
 json.put("username", un);
 json.put("password", pwd);

 StringEntity se = new StringEntity(json.toString());
    post.setEntity(se);
    response = client.execute(post);

响应解析如下

result = responsetoString(response.getEntity().getContent()); //Converts response to String 

jObject = new JSONObject(result);
 JSONObject post = jObject.getJSONObject("post");
    username = post.getString("username");
    message = post.getString("message");

希望这一切都很好。在Django服务器中解析或发送JSON响应时出现问题。这是最好的方法吗?

我们尝试使用 SimpleJSON 并且结果并非如此简单,因为我们没有找到相同的优秀教程或示例代码?是否有任何类似于获取,放置和选择java for JSON的python函数?任何帮助将不胜感激..

3 个答案:

答案 0 :(得分:1)

在Python中,JSON数组成为列表,JSON对象成为dicts。除此之外,使用逻辑映射(字符串 - > unicode,true / false - > True / False,null - > None)。

答案 1 :(得分:1)

Python标准库具有JSON加载/转储功能: http://docs.python.org/library/json.html

答案 2 :(得分:1)

simplejson.loads和simplejson.dumps将字符串转换为/来自python dicts

from django.utils import simplejson

result = simplejson.loads('{"username": "abc", "password": "def"}')

# now just use result like a python dictionary 
username = result.get('username', None)   # pass second parameter as a default

# or catch KeyError
try:
    password = result['password']
except KeyError, e:
    print 'no password'

转储也非常简单:

a_dict = {'username':'abc', 'password': 'def'}
json_str = simplejson.dumps(a_dict)
# json_str = '{"username": "abc", "password": "def"}'