php - 在Android中对Json输出进行排序
问题描述
我在 PHP 中创建了一个 web_service,它输出基于 MYSQL 查询的 JSON。当我的 android 应用程序调用该服务时,该服务会将数据返回到应用程序,并将其转换为 JSONObject。一切都按预期进行,因为我在 PHP 服务器端对数据进行了排序,而 Android 应用程序将数据保持在相同的顺序。
但是当我在较低的 APIS(果冻豆)上测试应用程序时。我看到第一个记录是底部,第二个是第一。我调试了那部分代码并看到了这个:
但是当我在较新的 API(牛轧糖)上调试相同的部分时,我发现了这个:
我想知道这是否是一个错误,或者我应该在我的 android 应用程序上更改我的 java 代码。我认为对结果进行排序的最佳方法是在服务器端而不是应用端进行。
这里是读取 Web 服务结果的代码:
if (resultado_json[1].compareTo(URLSECCIONES) == 0) {
JSONObject json = new JSONObject(resultado_json[0]);
//Log.i("hola3", resultadofin);
orquestador.procesarResultados(json);
}
解决方案
我建议您在此数据中添加某种 id,这样排序总是很简单。
如果使用 php,只需遍历所有内容并添加可排序的 id,或者至少添加一个日期。
由于您不提供后端代码,因此很难说出您在做什么,但是在 Java 中,如果您想对某些东西进行反向排序,您可以这样做。
JSONArray array = response.getJSONArray("records");
for (int i = array.length()-1; i >= 0; i--) { //you are moving backwards, notice the i-- in the loop }
如果您发布您的 PHP 代码,我也可以提供帮助。
推荐阅读
- javascript - 在 DOM 中设置图像并更改它
- c - 如何接受并同时使不需要的输入变得愚蠢?(扫描)
- c++ - 模板模板类中非类型参数的类型在 C++14 中不可推导,但在 C++17 中可推导
- c - ada程序调用c函数有interfaces.c.size_t问题
- javascript - 通过 Swift 更新 WKWebView 内容在后台线程中失败
- c# - C# 处理数据错误和警告而不是异常的最佳实践是什么
- java - 如何让我的程序等待用户与我的 JFrame 交互?
- aws-lambda - AWS Amplify 如何包含跨两个模型属性的验证?(例如 startDate < endDate)
- c# - 什么是 Entity Framework Core 属性等价于 modelBuilder 的 HasDefaultValueSql?
- python - 编码和解码图片pytorch