没有按照我输入的顺序获取JSON数据

时间:2017-06-03 06:16:41

标签: java json netbeans

我从数据库表中获取详细信息,该表包含JAVA中的3行。  我正在使用JSONarray和JSONObject,如下所示

JSONObject jsonObject = new JSONObject();
JSONObject mainjsonObject = new JSONObject();
JSONArray ja=new JSONArray();

表中的数据按以下方式放到jsonObject中:

String qry="select * from details";
ResultSet res = select .executeQuery(qry);
while(res.next){

String Name=res.getString("name");
 String age=res.getString("age");

.
.

jsonObject.put("Name", Name);
jsonObject.put("age", age);

.

.

ja.put(jsonObject);

}



mainjsonObject.put("PERSONAL DETAILS",ja);

我应该得到输出json如下(即我输入的顺序):

{
"PERSONAL DETAILS": [
    {
      " name": "abc",
      "age": "4",
      "gender": "F",
      "Place": "abc1"
    },
    {
      " name": "xyz",
      "age": "3",
      "gender": "M",
      "Place": "abc2"
    }


]

}

但是我按照下面的随机顺序获取值:

{

"PERSONAL DETAILS": [

    {



     "age": "4",
    " name": "abc",
      "Place": "abc1"
     "gender": "F",

    },

    {



   "age": "3",
  " name": "xyz",
   "Place": "abc2"
   "gender": "M",



    }


]

}

请帮我解决一下。我需要按照我输入的顺序获取所有值。

1 个答案:

答案 0 :(得分:0)

您可以尝试使用LinkedHashMap构建json对象构造,然后将其传递给构造函数,

LinkedHashMap<String, String> jsonOrderedMap = new LinkedHashMap<String, String>();

jsonOrderedMap.put("Name", res.getString(1));
...
...
// struct you want  

JSONObject JSONorder = new JSONObject(jsonOrderedMap);

JSONArray sortedJSON = new JSONArray(Arrays.asList(JSONorder));