JSON是一種獨立于語言和平臺、輕量級的數據交換格式全稱JavaScript對象表示法(JavaScript Object Notation)。起初來源于JavaScript這門語言,后來隨著使用的廣泛,幾乎每門開發(fā)語言都有處理JSON的API。
普通:
數組:
集合:一般來說都不用手寫這樣的JSON格式,都是通過將對象啊、集合什么的自動轉換成JSON格式的,然后傳到前端再進行解析
目前,前后端的ajax通訊幾乎用的都是json格式的了,所以在開發(fā)的過程中,我們經常會涉及到JSON數據的轉換
com.alibaba fastjson 1.2.3 com.colobu fastjson-jaxrs-json-provider 0.3.1
// java對象轉化為JSON
@Test
public void javaBeanToJson(){// 1、創(chuàng)建Persion對象
Person lzy = new Person("lzy", 25, DateUtils.getDateFormart());
// 2、使用JSON對象 將persion對象轉換為JSON數據
String s = JSON.toJSONString(lzy);
System.out.println(s);
}
// Java中的集合轉JSON (List)
@Test
public void ListToJSON(){Person gzw = new Person("gzw", 25, DateUtils.getDateFormart());
Person lzy = new Person("lzy", 25, DateUtils.getDateFormart());
Person sjw = new Person("sjw", 25, DateUtils.getDateFormart());
Listlists = new ArrayList<>();
lists.add(gzw);
lists.add(lzy);
lists.add(sjw);
String s = JSON.toJSONString(lists);
System.out.println(s);
}
// Java中的集合轉JSON (Map)
@Test
public void MapToJSON(){Person gzw = new Person("gzw", 25, DateUtils.getDateFormart());
Person lzy = new Person("lzy", 25, DateUtils.getDateFormart());
Person sjw = new Person("sjw", 25, DateUtils.getDateFormart());
Listlists = new ArrayList<>();
lists.add(gzw);
lists.add(lzy);
lists.add(sjw);
Mapmap = new HashMap<>();
map.put("error_message", "success");
map.put("lists", JSON.toJSONString(lists));
String s1 = JSON.toJSONString(map);
System.out.println(s1);
}
7、JSON轉Java// JSON轉對象
@Test
public void JSONToJavaBean(){String json = "{\"USERNAME\":\"lzy\",\"AGE\":25}";
Person person = JSON.parseObject(json, Person.class);
System.out.println(person);
}
@Test
public void JSONToList(){String json = "[{\"USERNAME\":\"gzw\",\"AGE\":25,\"BIRTHDAY\":\"2023-01-14 15:47:15\"},{\"USERNAME\":\"lzy\",\"AGE\":25,\"BIRTHDAY\":\"2023-01-14 15:47:15\"},{\"USERNAME\":\"sjw\",\"AGE\":25,\"BIRTHDAY\":\"2023-01-14 15:47:15\"}]";
Listlists = (List)JSON.parseArray(json, Person.class);
for (Person list : lists) {System.out.println(list);
}
}
@Test
public void JSONToMap(){String json = "{\"error_message\":\"success\",\"lists\":\"[{\\\"USERNAME\\\":\\\"gzw\\\",\\\"AGE\\\":25,\\\"BIRTHDAY\\\":\\\"2023-01-14 15:55:10\\\"},{\\\"USERNAME\\\":\\\"lzy\\\",\\\"AGE\\\":25,\\\"BIRTHDAY\\\":\\\"2023-01-14 15:55:10\\\"},{\\\"USERNAME\\\":\\\"sjw\\\",\\\"AGE\\\":25,\\\"BIRTHDAY\\\":\\\"2023-01-14 15:55:10\\\"}]\"}";
Mapmap = JSON.parseObject(json, Map.class);
String s = map.get("lists");
Listpeople = JSON.parseArray(s, Person.class);
for (Person person : people) {System.out.println(person);
}
}
8、JSONField注解@Data
@AllArgsConstructor
@NoArgsConstructor
public class Person {// 可以通過name去指定輸出的名稱
// ordinal可以指定輸出的順序
// 使用serialize屬性,指定字段是否序列化
@JSONField(name = "USERNAME", ordinal = 1)
private String name;
@JSONField(name = "AGE", ordinal = 2)
private Integer age;
@JSONField(serialize = false)
private String birthday;
}
總結
你是否還在尋找穩(wěn)定的海外服務器提供商?創(chuàng)新互聯www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調度確保服務器高可用性,企業(yè)級服務器適合批量采購,新人活動首月15元起,快前往官網查看詳情吧