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