瞭解JSON.parseObject(String str)/JSONObject.parseObject()和JSON.toJSONString()的功能
阿新 • • 發佈:2019-01-02
今天用到了JSON物件和JSON 字串之間的相互轉換,藉此記錄一下心得。
基礎語法:
JSON字串轉化成JSON物件
JSONObject jsonobject = JSON.parseObject(str);
或者
JSONObject jsonobject = JSONObject.parseObject(str);
功能上是一樣的,都是將JSON字串(str)轉換成JSON物件 jsonobject 。注意str一定得是以鍵值對存在的JSON字串。
JSON.parseObject(String text, Class clazz)方法
JSON.parseObject(String text, Class clazz),作用就是將指定的JSON字串轉換成自己的實體類的物件
首先定義一個自己的實體類Test:
public class Test { private String name; private String age; private String addr; private String sex; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAge() { return age; } public void setAge(String age) { this.age = age; } public String getAddr() { return addr; } public void setAddr(String addr) { this.addr = addr; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } @Override public String toString() { return "Test{" + "name='" + name + '\'' + ", age='" + age + '\'' + ", addr='" + addr + '\'' + ", sex='" + sex + '\'' + '}'; } public Test(String name, String age, String addr, String sex) { this.name = name; this.age = age; this.addr = addr; this.sex = sex; } }
然後在jsonTest測試類中進行測試
import com.alibaba.fastjson.JSON; public class jsonTest { public static void main(String[] args){ //haha是Test類沒有的 String jsonString = "{name:'hqz',age:'18',sex:'male',haha:'sd'}"; /** * JSON字串轉化成自己的實體類物件 test */ Test test = JSON.parseObject(jsonString, Test.class); System.out.println(test.toString()); /** * 物件轉化成JSON 字串 */ String jsonStr = JSON.toJSONString(test); System.out.println(jsonStr); } }
輸出依次為:
test{name='hqz', age='18', addr='null', sex='male'}
{"age":"18","name":"hqz","sex":"male"}
可以看到addr=’‘null’’,說明,
①:將JSON字串轉化成物件時,會去填充名稱相同的屬性,對於JSON字串中沒有,而Test類有的屬性,會為null;
②:將物件轉化成JSON字串時,對於JSON字串有,但是Test類沒有的,不做任何處理。
以上。