Хостинг серверов Minecraft playvds.com
  1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

Помогите JSON

Тема в разделе "Разработка плагинов для новичков", создана пользователем AlexeyVodnuy, 7 дек 2018.

  1. Автор темы
    AlexeyVodnuy

    AlexeyVodnuy Активный участник Пользователь

    Баллы:
    61
    Имя в Minecraft:
    KIZAK
    Как сохранить и прочитать ключ из JSON файла. Когда питаюсь сохранять определенные данные у меня ВСЕГДА получается "{}". Кто может помочь?
     
  2. Mr Hosting
  3. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Код:
    package Example;
    
    import java.io.File;
    import java.io.IOException;
    import java.nio.charset.Charset;
    import org.apache.commons.io.FileUtils;
    import org.bukkit.plugin.java.JavaPlugin;
    import com.google.gson.Gson;
    import com.google.gson.GsonBuilder;
    
    public class JsonConfig<T> {
        private File file;
        private Gson gson = new Gson();
        private T t;
    
        public static boolean exist(JavaPlugin plugin, String name) {
            return new File(plugin.getDataFolder(), name + ".json").exists();
        }
    
        public JsonConfig(JavaPlugin plugin, String name, T o) {
            this.t = o;
            this.file = new File(plugin.getDataFolder(), name + ".json");
            this.file.getParentFile().mkdirs();
            this.load();
        }
    
        private void load() {
            String s = "{}";
            try {
                s = FileUtils.readFileToString(this.file, Charset.defaultCharset());
            } catch (IOException e) {
    
            }
            t = (T) gson.fromJson(s, this.t.getClass());
        }
    
        public void save() {
            Gson gson = new GsonBuilder().setPrettyPrinting().create();
            try {
                FileUtils.writeStringToFile(this.file, gson.toJson(this.t), Charset.defaultCharset());
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    
        public T get() {
            return this.t;
        }
    
        public String toString() {
            return t.toString();
        }
    }
    Пример юза.

    Код:
    package Example;
    
    import java.util.List;
    
    public class User {
        private String test;
        private List<String> test2;
    
        public String get() {
            return this.test;
        }
    
        public void set(String s) {
            this.test = s;
        }
    
        public void setL(List<String> s) {
            test2 = s;
        }
    
        public List<String> getL() {
            return this.test2;
        }
    
        public String toString() {
            return "{test:" + test + ", test2" + test2 + "}";
        }
    }
    Код:
            JsonConfig<User> c = new JsonConfig<User>(plugin, "test", new User());
            c.get().set("test");
            c.get().setL(Arrays.asList(new String[]{"test2","test2","test2","test2"}));
            c.get().get();
            c.get().getL();
            c.save();
     

Поделиться этой страницей