2015-02-20 2 views
0

My JSon файл, как этоКак сортировать и искать JSon массив с помощью Java

{ 
"Hello" : [{ 
     "CommentId":28227, 
     "Comments":"User Philip John has added a new file", 
     "DisplayComments":"User <a id='getUser' data='205' >Philip John</a> has added a new file.", 
     "Users":[ 
     { "UserId":"1", "UserName":"User one" }, 
     { "UserId":"2", "UserName":"User two" } 
     ] 
},{ 
     "CommentId":28226, 
     "Comments":"docs", 
     "DisplayComments":"docs", 
     "RefCommentId":28226, 
     "IsSystemGenerated":0, 
     "CommentDate":"2014-09-17T06:51:47.317", 
     "Users": [ 
     {"UserId":"1","UserName":"User one"}, 
     {"UserId":"3","UserName":"User Three"} 
     ] 
},{ 
     "CommentId":28225, 
     "Comments":"New Group aa has been created.", 
     "DisplayComments":"New Group <a id='getGroup' data='88' >aa</a> has been created.", 
     "RefCommentId":28225, 
     "IsSystemGenerated":1, 
     "CommentDate":"2014-09-16T07:21:38.493", 
     "Users":[ 
     {"UserId":"3","UserName":"User three"}, 
     {"UserId":"4","UserName":"User four" } 
     ] 
},{ 
     "CommentId":28224, 
     "Comments":"New Group Philip has been created.", 
     "DisplayComments":"New Group <a id='getGroup' data='87' >ss</a> has been created.", 
     "RefCommentId":28224, 
     "IsSystemGenerated":1, 
     "CommentDate":"2014-09-16T06:00:58.897", 
     "Users":null 
}]} 
+0

Использование Boon, как я сортирую JsonArray или есть какой-либо другой процесс для сортировки и поиска данных Json. –

ответ

0

Прежде всего, вероятно, хорошая идея - определить классы моделей, которые будут содержать ваши данные json. После этого вы сможете легко работать с этими данными, а также ваш код будет более «чистым» в целом.

public class Hello{ 
    private String commentId; 
    private String comments; 
    private Date commentDate; 

    // ... other fields 
    // getters and setters... 
} 

В своем собственном ответе вы вывесили пример с JSONParser & классов JSONObject. Вы можете использовать эти классы, чтобы заполнить данные в классах модели.

JSONParser jsonParser = new JSONParser(); 
JSONObject jsonObject = (JSONObject) jsonParser.parse(reader); 
JSONArray lang= (JSONArray) jsonObject.get("Hello"); 

List<Hello> objs = new ArrayList<Hello>(); 

for (int i = 0; i < lang.length(); i++) { 
    JSONObject rec = lang.getJSONObject(i); 
    String commentId = rec.getInt("CommentId"); 
    String comments = rec.getString("Comments"); 
    // ... 

    Hello h = new Hello(); 
    h.setCommentId(commentId); 
    h.setComments(comments); 
    // ... 

    // store you objects into list 
    objs.add(h); 
} 

Затем вы можете использовать класс Collections для сортировки данных в списке по дате, например. например:

Collections.sort(objs, new Comparator<Hello>() { 

    @Override 
    public int compare(Hello o1, Hello o2) { 
     return o1.getCommentDate().compareTo(o2.getCommentDate()); 
    } 
}); 
0

Я пытался, как это, но я не смог найти и отсортировать элемент. закрытый статический окончательный String filePath = "E: \ List.json";

public static void main(String[] args) { 

    try { 

     FileReader reader = new FileReader(filePath); 

     JSONParser jsonParser = new JSONParser(); 
     JSONObject jsonObject = (JSONObject) jsonParser.parse(reader); 


     JSONArray lang= (JSONArray) jsonObject.get("Hello"); 

     Map<JSONObject, String> jsonValues = new TreeMap<JSONObject, String>(); 

     for(int i=0; i<lang.size(); i++){ 
      jsonValues.putAll((JSONObject) lang.get(i)); 
      System.out.println(jsonValues.toString()); 

     } 

     } catch (FileNotFoundException ex) { 
      ex.printStackTrace(); 
     } catch (IOException ex) { 
      ex.printStackTrace(); 
     } catch (ParseException ex) { 
      ex.printStackTrace(); 
     } catch (NullPointerException ex) { 
      ex.printStackTrace(); 
     } 

    } 
Смежные вопросы