• 使用Gson将Java对象转换为JSON


    GsonGoogle的一个开源项目,可以将Java对象转换成JSON,也可能将JSON转换成Java对象。

       

    Gson里最重要的对象有2Gson GsonBuilder

       

    Gson2个最基本的方法
    1) toJson() –
    转换java 对象到JSON
    2) fromJson() –
    转换JSONjava对象

       

    下面是几个小例子

    1. toJson() example

    Java代码  

    1. class TestObjectToJson {  
    2.   private int data1 = 100;  
    3.   private String data2 = "hello";  
    4. }  
    5.      
    6. TestObjectToJson obj = new TestObjectToJson();  
    7. Gson gson = new Gson();  
    8. String json = gson.toJson(obj);  

     会输出 {"data1":100,"data2":"hello"}

       

    2. fromJson() example

    Java代码  

    1. import com.google.gson.Gson;  
    2.      
    3. class TestJsonFromObject {  
    4.   private int data1;  
    5.   private String data2;  
    6. }  
    7.      
    8. String json = "{'data1':100,'data2':'hello'}";  
    9. Gson gson = new Gson();  
    10. TestJsonFromObject obj = gson.fromJson(json, TestJsonFromObject.class);  

       

    3. Java对象的属性转换成指定的JSON名字

    Java代码  

    1. import com.google.gson.FieldNamingPolicy;  
    2. import com.google.gson.Gson;  
    3. import com.google.gson.GsonBuilder;  
    4. import com.google.gson.annotations.SerializedName;  
    5.     
    6. public class TestGson {  
    7.         
    8.     @SerializedName("first_field")  
    9.     private String field1;  
    10.         
    11.     private String secondField;  
    12.     
    13.     public TestGson(String param1, String param2) {  
    14.         field1 = param1;  
    15.         secondField = param2;  
    16.     }  
    17. }  
    18.     
    19. TestGson obj = new TestGson("aaaa""bbbbb");  
    20. Gson gson = new GsonBuilder().setFieldNamingPolicy(FieldNamingPolicy.UPPER_CAMEL_CASE).create();  
    21. gson.toJson(obj);  

     输出结果 {"first_field":"aaaa","SecondField":"bbbbb"}

       

       

    原文 http://www.mkyong.com/java/how-do-convert-java-object-to-from-json-format-gson-api/

  • 相关阅读:
    并发容器和框架之ConcurrentHashMap
    Java的LockSupport工具,Condition接口和ConditionObject
    从源码来看ReentrantLock和ReentrantReadWriteLock
    VMWARE虚拟机上Terminal中使用sudo出现”** 不在sudoers文件中,此事将被警告 “错误
    mac下idea运行项目慢问题解决
    Idea 只修改编辑区主题
    redis内部数据结构的数据结构
    mysql存储过程详解
    HashMap中resize()剖析
    谈Redis的refash的增量式扩容
  • 原文地址:https://www.cnblogs.com/wuseyukui/p/3402684.html
Copyright © 2020-2023  润新知