JSON(2)_JSON 在 java 代码中的处理
程序员文章站
2024-01-15 16:52:34
...
本系列博客汇总在这里:JSON 汇总
JSON 在 java 代码中的处理 json-lib
一、关于 json-lib?
JSON-lib 是一个 java 类库。用于转换 javabeans, maps, collections, java arrays 和 XML 成为 json 格式数据 ;以及转换 json 格式数据成为 javabeans 对象。
- jakarta commons-lang 2.5
- jakarta commons-beanutils 1.8.0
- jakarta commons-collections 3.2.1
- jakarta commons-logging 1.1.1
- ezmorph 1.0.6
二、将 JavaBean/Map 解析成 JSON 串
package cn.wyx.json;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import cn.wyx.model.Person;
import net.sf.json.JSONObject;
public class Demo1
{
public static void main(String[] args)
{
Map<String, Object> map = new HashMap<String, Object>();
map.put("name", "魏宇轩1");
map.put("age", 12);
map.put("address", "昆明");
Person p = new Person("魏宇轩2", 28, new Date(), "北京");
map.put("person", p);
//把map转换成json对象
JSONObject obj = JSONObject.fromObject(map);
//把json对象转换成字符串
String result = obj.toString();
System.out.println(result);
}
}
三、将 Array 和集合解析成 json 串
package cn.wyx.json;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import net.sf.json.JSONArray;
import cn.wyx.model.Person;
public class Demo3
{
public static void main(String[] args)
{
Person p = new Person("魏宇轩1", 28, new Date(), "昆明");
// String[] names = {"刘备", "关羽", "张飞"};
// Object [] objs = {p, "诸葛亮", 23};
List list = new ArrayList();
list.add(p);
list.add("魏宇轩");
list.add(53);
JSONArray obj = JSONArray.fromObject(list);
String result = obj.toString();
System.out.println(result);
}
}
四、使用 JsonConfig 过虑属性
package cn.wyx.json;
import java.util.Date;
import net.sf.json.JSONObject;
import net.sf.json.JsonConfig;
import cn.wyx.model.Person;
public class Demo2
{
public static void main(String[] args)
{
Person p = new Person("魏宇轩", 18, new Date(), "昆明");
JsonConfig jc = new JsonConfig();
//在指定转换时不包含哪些属性
String[] attrs ={"birthday"};
jc.setExcludes(attrs);
//把map转换成json对象
JSONObject obj = JSONObject.fromObject(p,jc);
// 把json对象转换成字符串
String result = obj.toString();
System.out.println(result);
}
}
五、将 json 串转成 JavaBean/Map
package cn.wyx.json;
import java.util.Map;
import net.sf.json.JSONObject;
import cn.wyx.model.Person;
public class Demo4
{
public static void main(String[] args)
{
String str = "{\"address\":\"昆明\",\"age\":28,\"birthday\":{\"date\":8,\"day\":6,\"hours\":16,\"minutes\":14,\"month\":9,\"seconds\":11,\"time\":1475914451915,\"timezoneOffset\":-480,\"year\":116},\"name\":\"魏宇轩\"}";
/*
* //创建jsonConfig JsonConfig jc = new JsonConfig(); //设置要转换的类
* jc.setRootClass(Person.class);
*/
JSONObject obj = JSONObject.fromObject(str);
Person p = (Person) JSONObject.toBean(obj, Person.class);
System.out.println(p);
System.out.println("---------------------------------");
Map m = (Map) JSONObject.toBean(obj, Map.class);
System.out.println(m);
}
}
六、将字符串转换成集合
package cn.wyx.json;
import java.util.List;
import net.sf.json.JSONArray;
import net.sf.json.JSONSerializer;
import net.sf.json.JsonConfig;
import cn.wyx.model.Person;
public class Demo5
{
public static void main(String[] args)
{
/*
* List<Person> pList = new ArrayList<Person>();
* for(int i = 0; i < 5;i++)
* {
* Person p = new Person(\"魏宇轩\"+i,28, new Date(), \"昆明\");
* pList.add(p);
* }
* JSONArray ja = JSONArray.fromObject(pList);
* String result =ja.toString();
* System.out.println(result);
*/
String str = "[{\"address\":\"昆明\",\"age\":28,\"birthday\":{\"date\":8,\"day\":6,\"hours\":16,\"minutes\":24,\"month\":9,\"seconds\":34,\"time\":1475915074368,\"timezoneOffset\":-480,\"year\":116},\"name\":\"魏宇轩0\"},{\"address\":\"昆明\",\"age\":28,\"birthday\":{\"date\":8,\"day\":6,\"hours\":16,\"minutes\":24,\"month\":9,\"seconds\":34,\"time\":1475915074368,\"timezoneOffset\":-480,\"year\":116},\"name\":\"魏宇轩1\"},{\"address\":\"昆明\",\"age\":28,\"birthday\":{\"date\":8,\"day\":6,\"hours\":16,\"minutes\":24,\"month\":9,\"seconds\":34,\"time\":1475915074368,\"timezoneOffset\":-480,\"year\":116},\"name\":\"魏宇轩2\"},{\"address\":\"昆明\",\"age\":28,\"birthday\":{\"date\":8,\"day\":6,\"hours\":16,\"minutes\":24,\"month\":9,\"seconds\":34,\"time\":1475915074368,\"timezoneOffset\":-480,\"year\":116},\"name\":\"魏宇轩3\"},{\"address\":\"昆明\",\"age\":28,\"birthday\":{\"date\":8,\"day\":6,\"hours\":16,\"minutes\":24,\"month\":9,\"seconds\":34,\"time\":1475915074368,\"timezoneOffset\":-480,\"year\":116},\"name\":\"魏宇轩4\"}]";
JSONArray ja = JSONArray.fromObject(str);
// 创建json配置对象
JsonConfig jc = new JsonConfig();
// 设置json的要转换的类
jc.setRootClass(Person.class);
List<Person> pList = (List<Person>) JSONSerializer.toJava(ja, jc);
/*
* for(int i = 0; i < pList.size(); i++)
* {
* Person person = pList.get(i);
* System.out.println(person);
* }
*/
for (Person p : pList)
{
System.out.println(p.getName());
}
// System.out.println(pList);
}
}
如有错误,欢迎指正!
上一篇: 数据结构--单链表的基本功能实现
下一篇: 试读《程序员面试宝典(第5版)》
推荐阅读
-
JSON(2)_JSON 在 java 代码中的处理
-
原生ajax处理json格式数据的实例代码
-
【文件处理】——字典写入json文件或TXT文件,读取文件中的字典&TypeError: Object of type ‘ndarray‘ is not JSON serializable错误解决方法
-
JSON在PHP中的应用介绍_PHP
-
python中内置函数和json、pickle的数据序列化代码实例
-
JSON在PHP中的应用_PHP教程
-
在js中取json.php的数据并赋值给js中变量
-
JSON在PHP中的应用
-
java8中java.time.LocalDateTime的json格式化
-
在使用JSON格式处理数据时应该注意的问题小结