如何使用JSON在服务器的响应中传递图像?Base64编码?

use*_*574 9 python base64 android listview image

在我的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"}}...] 
Run Code Online (Sandbox Code Playgroud)

如果我在图片的JSON中添加一个参数应该会更好.

您是否认为将图片作为字符串返回JSON并使用Base64进行解码是个好主意?

Pet*_*ego 12

从技术上讲,将二进制数据编码为base64字符串并将其包含在JSON中是完全可以的.

但是,正如@servermanfail所指出的那样,将图像链接嵌入到JSON中并在第二步中下载它们可能会更好.

增加的好处是传输的大小/速度,因为base64流是原始二进制流的大小的4/3(33%开销).

此外,在这种情况下,您可以缓存图像.


ser*_*ail 8

我建议添加一个JSON参数,其中包含资源的URL.

为了增加安全性,您可以通过向资源添加带有盐校验和的md5来创建加密URL,例如http://server.com/images/1234567890123456789012345678901234567890/image.jpg - 这是facebook.com使用的方法.