在我的Android应用程序中,我在ListView中显示一些用户。我想显示(用户的pic,first_name,last_name)。现在,它只适用于first_name和last_name。我想添加图片。我从服务器(python)收到的数据JSON是这样的:
[{"profil":"first_name": "Jim", "last_name": "Carrey"}}, "_id": {"$oid": "4d595cda1d41c81536000000"}}, {"profil":{"first_name": "Mathieu", "last_name": "Polnari"}}, "_id": {"$oid": "4d5916581d41c80e88000000"}}, {"profil": {"first_name": "Vincent", "last_name": "Fatou"}}, "_id": {"$oid": "4d58fc7e1d41c8090e000000"}}...]
如果我在图片的JSON中添加一个参数应该会更好。
你认为将图片作为字符串返回JSON并使用Base64进行解码是一个好主意吗?
答案 0 :(得分:12)
从技术上讲,将二进制数据编码为base64字符串并将其包含在JSON中是完全可以的。
但是,正如@servermanfail指出的那样,将图像链接嵌入JSON并在第二步中下载它们可能会更好。
附加的好处是传输的大小/速度,因为base64流是原始二进制流的大小的4/3(33%开销)。
此外,在这种情况下,您可以缓存图像。
答案 1 :(得分:8)
我建议添加一个包含资源URL的JSON参数。
为了增加安全性,您可以通过向资源添加带有盐校验和的md5来创建加密URL,例如http://server.com/images/1234567890123456789012345678901234567890/image.jpg - 这是facebook.com使用的方法。