json-lib
是一个老牌 Java JSON 处理库,可以方便地在 Java 对象和 JSON 字符串之间互转。
虽然现在更流行的库有 Jackson、Gson,但 json-lib 依然在一些遗留项目中使用。
<dependency> <groupId>net.sf.json-lib</groupId> <artifactId>json-lib</artifactId> <version>2.4</version> <classifier>jdk15</classifier></dependency>php165 Bytes© 菜鸟-创作你的创作
json-lib 依赖以下库,需确保也引入:
JSONObject
— 代表 JSON 对象JSONArray
— 代表 JSON 数组JsonConfig
— 配置序列化/反序列化行为假设有个简单的 Java 类:
public class User { private String name; private int age; // getter/setter public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; }}php285 Bytes© 菜鸟-创作你的创作
转换示例:
import net.sf.json.JSONObject;public class JsonLibDemo { public static void main(String[] args) { User user = new User(); user.setName("小明"); user.setAge(18); JSONObject json = JSONObject.fromObject(user); String jsonString = json.toString(); System.out.println(jsonString); }}php338 Bytes© 菜鸟-创作你的创作
输出:
{"age":18,"name":"小明"}php22 Bytes© 菜鸟-创作你的创作
import net.sf.json.JSONObject;public class JsonLibDemo { public static void main(String[] args) { String jsonString = "{\"age\":18,\"name\":\"小明\"}"; JSONObject json = JSONObject.fromObject(jsonString); User user = (User) JSONObject.toBean(json, User.class); System.out.println(user.getName()); // 小明 System.out.println(user.getAge()); // 18 }}php398 Bytes© 菜鸟-创作你的创作
import net.sf.json.JSONArray;import java.util.ArrayList;import java.util.List;List<User> userList = new ArrayList<>();userList.add(user1);userList.add(user2);JSONArray jsonArray = JSONArray.fromObject(userList);System.out.println(jsonArray.toString());php261 Bytes© 菜鸟-创作你的创作
JSONArray jsonArray = JSONArray.fromObject(jsonString);List<User> users = (List<User>) JSONArray.toCollection(jsonArray, User.class);php134 Bytes© 菜鸟-创作你的创作
JsonConfig
自定义日期格式。import net.sf.json.JSONObject;import net.sf.json.JsonConfig;import net.sf.json.util.CycleDetectionStrategy;import java.text.SimpleDateFormat;import java.util.Date;public class JsonLibDateDemo { public static void main(String[] args) { JsonConfig jsonConfig = new JsonConfig(); jsonConfig.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT); jsonConfig.registerJsonValueProcessor(Date.class, (value, jsonConfig1) -> { if (value == null) return ""; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); return sdf.format(value); }); MyBean bean = new MyBean(); bean.setDate(new Date()); JSONObject json = JSONObject.fromObject(bean, jsonConfig); System.out.println(json.toString()); }}class MyBean { private Date date; public Date getDate() { return date; } public void setDate(Date date) { this.date = date; }}php962 Bytes© 菜鸟-创作你的创作
https://www.52runoob.com/archives/5532
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。