安卓,Json修改元素



我在服务器上有一个json文件:

{"images":[
{"url":"...", "likes":"123"}, 
{"url":"...", "likes":"234"},
{"url":"...", "likes":"345"}
]}

我在android上读取了json文件,但如果有人喜欢一张图片,我想把第一张图片的值从123改为124,这可能吗?我该怎么做?

重点是从客户端更改服务器上的json值。如果这不可能的话,我该怎么做呢?

此外,如果我想获得Top50评级的图片,我如何对它们进行排序,只获得50张图片,而不在android上获取所有图片并进行排序?

当用户启动应用程序时,或者当用户点击Top50按钮时,初始化Top50图像哪个更好。我认为,如果是在他点击按钮时,服务器端可能会出现一些性能问题?

我的另一个想法是有一个功能服务器端,它每10分钟自动执行一次,并获得Top50评级,并生成类似json文件的内容。所以这一切都是服务器端自动发生的。

要实现这一点,客户端应该公开一些接口,即允许在服务器端修改文件的函数。该功能的接口和实现在很大程度上取决于服务器本身,即它处理哪些协议,支持哪些内置或外部模块,支持哪些语言等。例如,经典场景是使用apache作为HTTP服务器,启用CGI,并在perl中编写CGI功能。因此,在这种情况下,界面看起来像http://server.name/like.cgi?image=image123.

如何修改服务器上的值?

为此,每一张类似的照片都应该是这样的帖子请求。

{
    "data": [
        {
            "image_id": 3133456,
            "likes": 343
        },
        {
            "image_id": 3133456,
            "likes": 343
        }
    ]
}

在解析该请求时,服务器会更新服务器上的相应图像。

如何从服务器上获得前50个评分/点赞的图片?

再次向这样的url发送get请求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"
        }
    ]
}

您仍然可以避免自己使用数据库,但可以从解析等云服务租赁数据库。然而,如果你不打算使用这些服务,那么你可以看看js的ftp包。就像apache的neoJavaScript库。但一个好的选择仍然是使用数据库方法(更简单)。

相关内容

  • 没有找到相关文章