java 从json文件反序列化对象的Gson示例。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 从json文件反序列化对象的Gson示例。相关的知识,希望对你有一定的参考价值。

{ "cache_size" : 500, "memory_size" : 450, "test_var1" : "THIS IS A TEST VALUE", "test_var2" : "THIS IS ANOTHER TEST VALUE"}
import com.google.gson.Gson;

import java.io.*;

/*
    Json file should resemble the class definition:
    { "memory_size" : 123, "cache_size" : 123 }
*/

/**
 * Created by Kyle on 6/7/15.
 * Using the Google's Gson library to serialize/deserialize objects
 */
public class Main {
    private static final String JSON_FILE = "config.json";

    public static void main(String... args)
    {
        // Read file
        File file = new File(JSON_FILE);
        try {
            BufferedReader reader = new BufferedReader(new FileReader(file));
            String line = null;
            StringBuilder str = new StringBuilder();

            // Grab each line, using StringBuilder for performance
            while((line = reader.readLine()) != null)
            {
                str.append(line);
            }

            // Create Gson object to convert json to Settings object
            Gson gson = new Gson();
            Settings settings = gson.fromJson(str.toString(), Settings.class);
            System.out.println(settings.toString());


        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
        catch (IOException e)
        {

        }
    }

    // All fields should map to fields within the json document.
    private class Settings
    {
        public int memory_size;
        public int cache_size;
        public String test_var1;
        public String test_var2;
        public Settings(){}

        public String toString()
        {
            return "Memory: " + memory_size + "\nCache: " + cache_size + "\ntest_var1: " + test_var1 + "\ntest_var2: " + test_var2;
        }
    }
}

以上是关于java 从json文件反序列化对象的Gson示例。的主要内容,如果未能解决你的问题,请参考以下文章

使用 GSON 将 JSON 反序列化为 Java 对象时遇到问题

完全理解Gson:简单入门

完全理解Gson:Gson反序列化

Gson解析(序列化,反序列化)

Android 中使用Gson完成对象的序列化与反序列化

Gson 在反序列化对象时忽略 null