android中JSONObject的无序数据

时间:2017-04-19 09:28:08

标签: android json unordered

我正在使用JSONObject来输入数据并计算出来的东西。假设我输入了以下形式的数据: -

JSONObject obj = new JSONObject();
obj.put("uuid", newImageUuid);
obj.put("type", "image");
obj.put("value", base64ImagePath);

对于19以上的SDK版本,我得到了完美的顺序,但对于低于它的版本,json的顺序颠倒了。首先是值,然后键入,然后是uuid。

我试过这种方式: -

Map obj=new LinkedHashMap();
                obj.put("uuid", newImageUuid);
                obj.put("type", "image");
                obj.put("value", base64ImagePath);
                StringWriter data = new StringWriter();
                JSONValue.writeJSONString(obj, data);

数据是以有序的方式和我想要的形式,但我不能使用这些数据作为它的类型是StringWriter。但是当我将这些数据转换回JSONObject时,结果将是无序的。我已经尝试了很多方法,比如存储在linkedhashmaps中然后转换为JSONObjects但没有用。任何人都可以帮忙。

2 个答案:

答案 0 :(得分:0)

正如JSON official doc所说:

  

对象是一组无序的名称/值对。

因此Serializer没有任何特定订单。ParsersJSONObject都不关心Key/Value键/值的顺序。现在,如果你真的坚持要求保持秩序,你可以尝试将Objects转换为由KeyValue合成的 if($start_date != '' && $end_date != '' && $exp_type != '') { $this->db->where("tbl_expenses.created_date BETWEEN " . $start_date . " AND ". $end_date); [Error occur bcz of this line] $this->db->where("tbl_expenses.expense_type",$exp_type); $result = $this->db->get(); $data['searched_data'] = $result->result(); $this->load->view('admin/filter_result_view',$data); } 数组。

答案 1 :(得分:0)

JSON对象没有任何order.It是键/值对。我们可以用键保存值

我们可以使用键

获取值

如果您想要有序数据,可以使用数组,arraylist