gpt4 book ai didi

java - 为什么 Android 会更改我的 JSON 字符串的顺序?

转载 作者:行者123 更新时间:2023-11-29 03:40:03 24 4
gpt4 key购买 nike

我有一个非常简单的问题...在我的 Android 应用程序中,我正在形成一个 JSON 字符串以发送到我的服务器……我的代码中没有错误,但是 Java(或 Android)将这些值放在我的不同顺序中,我不知道为什么。 ..

我想解决这个问题,因为我需要在服务器中处理该 JSON 字符串以更新我数据库的一些表...我在服务器中的 PHP 代码使用与我在我的应用程序中解码 JSON 时使用的顺序相同的顺序字符串,但由于 Android(或 Java)改变了顺序,我在更新表格时遇到了麻烦...

有什么想法吗?提前致谢!

我在说这个:

在我的应用中:

json_data.put("id_visit", visits.getString(visits.getColumnIndexOrThrow("id_visit")));
json_data.put("id_form", visits.getString(visits.getColumnIndexOrThrow("id_form")));
json_data.put("id_establishment", visits.getString(visits.getColumnIndexOrThrow("id_establishment")));
json_data.put("id_promoter", visits.getString(visits.getColumnIndexOrThrow("id_promoter")));
json_data.put("actual_date", visits.getString(visits.getColumnIndexOrThrow("actual_date")));
json_data.put("receiver", visits.getString(visits.getColumnIndexOrThrow("receiver")));
json_data.put("observations", visits.getString(visits.getColumnIndexOrThrow("observations")));
json_data.put("gps_coordinates", visits.getString(visits.getColumnIndexOrThrow("gps_coordinates")));

在 LogCat 中:

{
"id_promoter":"1",
"id_establishment":"5",
"id_visit":"1",
"receiver":"brenda lopez",
"gps_coordinates":"10.4905567 -66.8710966",
"actual_date":"2012-11-27",
"id_form":"1",
"observations":"observaciones"
}

如您所见,顺序不同!这是为什么?

很抱歉没有花时间检查是否有人已经问过这个问题,但我有点赶时间,所以...抱歉!! xD

最佳答案

对象键在 JSON 中没有排序。如果您需要特定的顺序,我建议您使用数组:

[
{"id_promoter":"1"},
{"id_establishment":"5"},
{"id_visit":"1"},
{"receiver":"brenda lopez"},
{"gps_coordinates":"10.4905567 -66.8710966"},
{"actual_date":"2012-11-27"},
{"id_formu":"1"},
{"observations":"observaciones"}
]

这很恶心,但数组就是为了秩序。

另一种方法是定义一个数组,其中的键名按所需的顺序排列。然后您可以使用原始对象结构,但通过数组定义的键访问它。显然,这需要更多编码,但它也可以解决您的问题。

关于java - 为什么 Android 会更改我的 JSON 字符串的顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13593048/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com