Android,Json修改元素

时间:2015-03-07 17:55:17

标签: android 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文件的内容。所以这一切都在服务器端自动发生。

3 个答案:

答案 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库一样。 但仍然是一个很好的选择将采用数据库方法(更安静更简单)。