【问题标题】:Android, Json modifying elementAndroid, Json 修改元素
【发布时间】:2015-03-07 17:55:17
【问题描述】:

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

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

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

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

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

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

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

【问题讨论】:

  • 这取决于服务器的配置方式。

标签: android json


【解决方案1】:

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

【讨论】:

【解决方案2】:

如何修改服务器上的值?

为此,每张喜欢的照片都应该是这种类型的发布请求。

{
    "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"
        }
    ]
}

【讨论】:

  • 所以我应该使用数据库>json>android 来处理整个事情?像带有图像,url,likes,category 和 json 的 mysql 数据库来将数据解析到 android,如果我想将数据从 androd 解析到数据库,也是一样的?
  • 是的.. 但是您不是已经控制了这些实体吗?
  • 我只是将 json 文件存储在 ftp 服务器上。我希望我可以避免使用数据库。
【解决方案3】:

您仍然避免自己使用数据库,但可以从 parse 等云服务中租用它。 但是,如果您不使用这些服务,那么您可以查看用于 js 的 ftp 包。就像 apache 的 neo JavaScript 库一样。 但仍然是一个不错的选择是使用数据库方法(更简单)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-06-19
    • 2014-07-16
    • 1970-01-01
    • 2021-11-09
    • 2021-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多