HrabeMi

JSON controller

Jan 13th, 2021 (edited)
753
20 hours
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package cz.vse.java.zavl03.logika;
  2.  
  3. import java.io.FileWriter;
  4. import java.io.IOException;
  5. import org.json.simple.JSONObject;
  6. import org.json.simple.parser.JSONParser;
  7. import java.io.FileNotFoundException;
  8. import java.io.FileReader;
  9. import org.json.simple.parser.ParseException;
  10.  
  11.  
  12. /**
  13.  * Kód převzat z: https://howtodoinjava.com/java/library/json-simple-read-write-json-examples/
  14.  *
  15.  * Třída JSONController je určena pro práci s úložištěm.
  16.  */
  17. public class JSONController {
  18.  
  19.     private String filePath;
  20.     private JSONObject data;
  21.  
  22.     /**
  23.      * Konstruktor
  24.      * Ukládá obsah souboru s informaci o uživatelích
  25.      *
  26.      * @param filePath
  27.      */
  28.     public JSONController(String filePath){
  29.         this.filePath = filePath;
  30.         data = readJSON();
  31.     }
  32.  
  33.     public void updateUserData(Uzivatel uzivatel) {
  34.         JSONObject userDetails = registerUser(uzivatel);
  35.         if(data == null){
  36.             data = new JSONObject();
  37.         }
  38.         data.put(uzivatel.getEmail(), userDetails);
  39.         writeJSON(data);
  40.     }
  41.  
  42.     /**
  43.      * Uložení do souboru
  44.      * @param userObject
  45.      */
  46.     public void writeJSON(JSONObject userObject) {
  47.         //Write JSON file
  48.         try (FileWriter file = new FileWriter(filePath)) {
  49.  
  50.             file.write(userObject.toJSONString());
  51.             file.flush();
  52.  
  53.         } catch (IOException e) {
  54.             e.printStackTrace();
  55.         }
  56.     }
  57.  
  58.     public JSONObject registerUser(Uzivatel uzivatel) {
  59.         JSONObject userDetails = new JSONObject();
  60.  
  61.         userDetails.put("username", uzivatel.getUsername());
  62.         userDetails.put("email", uzivatel.getEmail());
  63.         userDetails.put("password", uzivatel.getHeslo());
  64.  
  65.         return userDetails;
  66.     }
  67.  
  68.     public JSONObject readJSON() {
  69.         JSONParser jsonParser = new JSONParser();
  70.         try (FileReader reader = new FileReader(filePath)) {
  71.             //Read JSON file
  72.             Object obj = jsonParser.parse(reader);
  73.  
  74.             JSONObject userList = (JSONObject) obj;
  75.  
  76.             return userList;
  77.  
  78.         } catch (FileNotFoundException e) {
  79.             e.printStackTrace();
  80.         } catch (IOException e) {
  81.             e.printStackTrace();
  82.         } catch (ParseException e) {
  83.             e.printStackTrace();
  84.         }
  85.         return null;
  86.     }
  87. }
  88.  
RAW Paste Data