fastjson 对 json 字符串 JSONObject 和 JSONArray 互相转换操作示例
json 字符串和 json 对象互转
package com.tapt.instance;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
public class Jsontest {
public static void main(String[] args) {
//json字符串转json对象
String json="{\"name\":\"刘德华\",\"age\":35,\"some\":[{\"k1\":\"v1\",\"k2\":\"v2\"},{\"k3\":\"v3\",\"k4\":\"v4\"}]}";
JSONObject jso=JSON.parseObject(json);//json字符串转换成jsonobject对象
System.out.println("初始jsonObject:\n"+jso+"\n");
//从json对象中获取json数组
JSONArray jsarr=jso.getJSONArray("some");//jsonobject对象取得some对应的jsonarray数组
System.out.println("jsonObject里面的jsonarray:\n"+jsarr+"\n");
//从json数组中获取json对象
JSONObject ao=jsarr.getJSONObject(0);//jsonarray对象通过getjsonobjext(index)方法取得数组里面的jsonobject对象
System.out.println("jsonObject里面的jsonarray里面的第一个jsonobject:\n"+ao+"\n");
//从json对象中获取某个元素
String vString=ao.getString("k1");//jsonobject对象通过key直接取得String的值
System.out.println("jsonObject里面的jsonarray里面的第一个jsonobject里的键值对对k1取值:\n"+vString+"\n");
}
}
控制台输出:
初始 jsonObject:
{"age":35,"name":"刘德华","some":[{"k1":"v1","k2":"v2"},{"k3":"v3","k4":"v4"}]}
jsonObject 里面的 jsonarray:
[{"k1":"v1","k2":"v2"},{"k3":"v3","k4":"v4"}]
jsonObject 里面的 jsonarray 里面的第一个 jsonobject:
{"k1":"v1","k2":"v2"}
jsonObject 里面的 jsonarray 里面的第一个 jsonobject 里的键值对对 k1 取值:
v1
遍历 json 数组
ps: 要遍历 jsonarray 对象,可以通过 size()方法取得 jsonarray 的长度,jsonarray.getJSONObject(index) 取得里面 JSONObject 对象;如:
for(int index=0;index<jsonarray.size();index++){}
json 对象和 java 对象互转
//java对象转化为json字符串
Person p1 = new Person();
p1.setAge(1);
p1.setName("zhangsan");
String s = JSON.toJSONString(p1);
System.out.println(s);
//json字符串转化为java对象
String jsonPerson = "{\"age\":1,\"name\":\"zhangsan\"}";
Person p2 = JSON.parseObject(jsonPerson, Person.class);
p2.setAge(2);
p2.setName("lisi");
System.out.println(p2);
//List转jsonArray
List<Person> list = new ArrayList<>();
list.add(p1);
list.add(p2);
String listJson = JSON.toJSONString(list);
System.out.println(listJson);
//json字符串转List
String listJson1 = "[{\"age\":1,\"name\":\"zhangsan\"},{\"age\":2,\"name\":\"lisi\"}]";
List<Person> list1 = JSON.parseArray(listJson1, Person.class);
System.out.println(list1);
java 对象转 json 对象
Data data = new Data();
data.setAction("add");
data.setId("1");
data.setOrdinal(8L);
data.setOrganUnitFullName("testJSON");
data.setParent("0");
data.setSuborderNo("58961");
JSONObject jsonObj = (JSONObject) JSON.toJSON(data);
JSON json = (JSON) JSON.toJSON(data);
System.out.println("jsonObj"+jsonObj);
System.out.println("json对象"+json);