我在服务器上有一个json文件:
{"images":[
{"url":"...", "likes":"123"},
{"url":"...", "likes":"234"},
{"url":"...", "likes":"345"}
]}
我在android上获取json文件读取它,但如果有人喜欢图片我想将第一张图片的值从123更改为124,这是否可行,我该怎么做?
重点是从客户端更改服务器上的json值。 如果这不可能,我怎么能做到这一点呢?
另外,如果我想获得Top50评级的图片,我怎样才能对它们进行排序并获得50张图片,而无需获取所有图片并在Android上进行排序?
哪一个更好,初始化Top50图像,当用户启动应用程序时,或者当用户点击按钮Top50时。我假设如果单击按钮时,服务器端可能存在一些性能问题?
我的另一个想法是让一个功能服务器端每10分钟自动执行并获得Top50评级并制作类似json文件的内容。所以这一切都在服务器端自动发生。
答案 0 :(得分:0)
为了实现这一点,客户端应该公开一些接口,即允许修改服务器端文件的功能。该函数的接口和实现在很大程度上取决于服务器本身,即它处理哪些协议,它支持哪些内置或外部模块,支持哪些语言等等...例如,经典场景使用apache作为HTTP服务器,CGI启用,并在perl中编写CGI函数。因此,在这种情况下,界面看起来像http://server.name/like.cgi?image=image123。
答案 1 :(得分:0)
如何修改服务器上的值?
为此,照片中的每一个都应该是此类的帖子请求。
{
"data": [
{
"image_id": 3133456,
"likes": 343
},
{
"image_id": 3133456,
"likes": 343
}
]
}
在解析此请求服务器时,更新服务器上的相应图像。
如何从服务器获取前50个评级/喜欢的图像?
再次向这样的网址发送获取请求 http://server.getsomething.com/getTop50Images
在服务器端
收到此类请求后,您可以对数据库中的表进行查询,如下所示
select image_id , image_url, likes from image_table limit 50 ORDER BY likes ASC
现在获取这些查询结果并将它们作为json返回在您拥有大量数据之前不会受到性能影响。比如您的数据库中可能有数百万行。
响应可以是这样的
{
"result": [
{
"image_id": 3133456,
"likes": 34400,
"url": "http://flickr.com/someimage"
},
{
"image_id": 3133456,
"likes": 34380,
"url": "http://flickr.com/someimage"
}
]
}
答案 2 :(得分:0)
您仍然可以避免自己使用数据库,但可以从云服务(如解析)中租用它。 但是,如果您不使用这些服务,那么您可以查看适用于js的ftp软件包。就像apache的neo JavaScript库一样。 但仍然是一个很好的选择将采用数据库方法(更安静更简单)。