为啥 Json 对象顺序在 android KITKAT 及以下版本中混淆?
Posted
技术标签:
【中文标题】为啥 Json 对象顺序在 android KITKAT 及以下版本中混淆?【英文标题】:Why Json Object order mixed up in android KITKAT and below versions?为什么 Json 对象顺序在 android KITKAT 及以下版本中混淆? 【发布时间】:2017-01-13 18:11:24 【问题描述】:我正在尝试将这些JSONbject
发送到服务器进行登录,它在 android lollipop 和 marshmallow 中的工作方式就像一个魅力,但是当我尝试登录 android kitkat 及以下版本时,由于 json,它给出了不正确的用户名和密码错误订单混淆。我该如何解决?
JSONObject jsonObject = new JSONObject();
try
jsonObject.put("USERName", username);
jsonObject.put("LOGINPASSWORD", password);
jsonObject.put("IMEINUMBER1", imeino);
jsonObject.put("Latitude", latitude);
jsonObject.put("Longitude", longitude);
catch (JSONException e)
e.printStackTrace();
下面是我的jsonObject
,它在 Android Kitkat 及以下版本中混用。
"USERName":"Rahul","Latitude":24.588532515497256,"Longitude":73.7020509167292,"IMEINUMBER1":"911375058484548","LOGINPASSWORD":"12345"
【问题讨论】:
json 是无序的!检查here 它在 Android Lollipop 和 marshmallow 中工作正常。但是对于低于 android 版本为什么它变得无序? 你不明白——你不能让事情超过标准。JSON
标准表示 JSON 对象是一组无序的名称/值对,这意味着阅读器永远不应依赖 JSON 字段排序,而是通过 name
访问值。如果您想保留顺序,请改用 JSON 数组:数组是零个或多个值的有序序列。
【参考方案1】:
JSONObject
不保证其键的任何顺序,它有时可能是插入顺序,有时不是。
如果您需要保持插入顺序,请改用JSONArray。
【讨论】:
以上是关于为啥 Json 对象顺序在 android KITKAT 及以下版本中混淆?的主要内容,如果未能解决你的问题,请参考以下文章