我在为mongo数据库编写API。我需要通过JSON对象作为GET参数:json对象作为获取参数
example.com/api/obj/list/1/?find={"foo":"bar“}
我应该如何安排这更好?
我想过使用JSON状物体不带引号和空格,例如:
{$or:[{a:foo+bar},{b:2}]}
那么,有没有工具来分析它在Python/Django的?
我在为mongo数据库编写API。我需要通过JSON对象作为GET参数:json对象作为获取参数
example.com/api/obj/list/1/?find={"foo":"bar“}
我应该如何安排这更好?
我想过使用JSON状物体不带引号和空格,例如:
{$or:[{a:foo+bar},{b:2}]}
那么,有没有工具来分析它在Python/Django的?
这应该是罚款,只要JSON对象不是太大,他们不包含敏感数据(它吮吸看到您的密码在你的浏览器历史记录),你的网址,逃避它们。
不幸的是,你有,如果你想有一个人类可读的JSON参数走捷径。所有JSON括号({
,}
,[
,]
)被推荐为逃逸。你不必逃避它们,但是如果你不这样做,你就会冒险。更可气的是:
,这是JSON无处不在,必须进行转义。
如果你想人类可读的查询字符串,那么明智的解决办法是显式编码所有查询参数。可能工作得很好的折衷方案是将顶级JSON对象解压缩为显式查询参数,每个参数都保留JSON编码。走出一小步进一步,你可以删除任何顶级的分隔符仍然存在,如:
JSON: {"foo":"bar", "items":[1, 2, 3], "staff":{"id":432, "first":"John", "last":"Doe"}}
Query: foo=bar&items=1,2,3&staff="id"%3A432,"first"%3A"John","last"%3A"Doe"
既然你知道foo是一个字符串,项目是一个数组和员工是一个对象,你可以补充水分的JSON语法在将批次发送到JSON解析器之前正确。
好吧,Mongo收藏包含开放数据的报告,所以我不会存储个人信息。不过,我可以过滤一些参数。我不想传递JSON,因为它在逃脱时增加了它的大小。此外,它将很高兴通过人类可读的查询 – San4ez 2010-12-09 09:42:40
您也可以URL编码或Base64编码的数据(这将导致更长的字符串)。 – 2010-12-09 09:29:23