Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/178.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
Android JSON数组顺序_Android_Json - Fatal编程技术网

Android JSON数组顺序

Android JSON数组顺序,android,json,Android,Json,我使用PHP作为访问MySql数据库的中间人,它使用json\u encode以json字符串的形式返回查询结果,然后将其显示在应用程序的TableLayout中,这就是为什么顺序很重要,以便我可以排列数据和标题 经过一些研究,我发现json并不强制执行顺序,所以每当我调用newJSonarray(result)时,它都会扰乱PHP返回的json。有没有办法保留返回字符串的顺序?或者我在两端使用了不正确的数据结构 相关PHP结果: [{"FIELD1":"vsa","FIELD2":"dfs",

我使用PHP作为访问MySql数据库的中间人,它使用
json\u encode
以json字符串的形式返回查询结果,然后将其显示在应用程序的TableLayout中,这就是为什么顺序很重要,以便我可以排列数据和标题

经过一些研究,我发现json并不强制执行顺序,所以每当我调用
newJSonarray(result)
时,它都会扰乱PHP返回的json。有没有办法保留返回字符串的顺序?或者我在两端使用了不正确的数据结构

相关PHP结果

[{"FIELD1":"vsa","FIELD2":"dfs","FIELD3":"dsfa","FIELD4":"adsf","FIELD5":"23","ZIPCODE":"asdf","USERNAME":"asd","PASSWORD":"as","DATE1":"dsfa"}]
JSONArray之后的相关Android结果(结果):

[{"ZIPCODE":"asdf","DATE1":"dsfa","FIELD3":"dsfa","FIELD2":"dfs","FIELD5":"23","FIELD4":"adsf","USERNAME":"asd","FIELD1":"vsa","PASSWORD":"as"}]

我从未见过
新的JSONArray(String)
改变任何东西的顺序,我也经常使用它。然而,您所拥有的似乎是一个长度为1的数组。使用
myJsonArray.getJsonObject(0.getString(“ZIPCODE”)
仍应返回正确的数据,只要您以正确的顺序(FIELD1、FIELD2、FIELD3等)进行查询,就可以了。

我相信JSON对象内部的重新排序是因为JSON对象是键/值对(而不是索引数组),默认情况下是无序的。但是,JSON数组是一个有序的值序列(JSON对象)

不要依赖秩序


来源:

为什么您需要保持相同的订单?JSON对象的属性顺序应该对应用程序没有影响。JSONArray本身不会(即使在您的例子中)对项目进行重新排序,是内部的JSONObject对其属性进行了重新排序,可能是通过它上面的HashMap/Hashtable实现的。是的,我必须通过json对象传递一个字符串并对其进行解析以保持顺序。