Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么Android会更改JSON字符串的顺序?_Java_Android_Json - Fatal编程技术网

Java 为什么Android会更改JSON字符串的顺序?

Java 为什么Android会更改JSON字符串的顺序?,java,android,json,Java,Android,Json,我有一个非常简单的问题。。。 在我的Android应用程序中,我正在形成一个JSON字符串以发送到我的服务器。。。我的代码中没有错误,但Java(或Android)将这些值按与我不同的顺序排列,我不知道为什么 我想解决这个问题,因为我需要在服务器中处理JSON字符串以更新数据库的一些表。。。我在服务器中的PHP代码使用与我在应用程序中解码JSON字符串相同的顺序,但由于Android(或Java)更改了顺序,我在更新表时遇到了麻烦 有什么想法吗?提前谢谢 我说的是: 在我的应用程序中: json

我有一个非常简单的问题。。。 在我的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"}
]
这很恶心,但数组的作用是为了顺序


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

对象键不是用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"}
]
这很恶心,但数组的作用是为了顺序


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

元素顺序不是json标准的一部分我猜您只关心b/c顺序,您依靠它来用php编写自己的json解析器?只需改用。JSON不是有序的。如果您需要排序,请将其放入数组中,但eeeew——似乎完全没有意义。元素顺序的可能重复不是json标准的一部分我猜您只关心b/c顺序,您依靠它在php中编写自己的json解析器?只需改用。JSON不是有序的。如果您需要对其进行排序,请将其放入数组中,但eeeew--似乎完全没有意义