1. Java 中并没有Json 解析,需要引用第三方的类库:
2. fastJson 简单应用:
环境配置
在 Maven 构建的项目中,在 pom.xml 文件中加入以下依赖即可。
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.47</version>
</dependency>
对json 构建和简单的解析
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import org.junit.Test;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
public class JsonTest {
/**
* 构造json 串
*/
@Test
public void testJson(){
JSONObject object = new JSONObject();
//string
object.put("string", "string");
// int
object.put("int", 2);
// boolean
object.put("boolean",true);
// array
List<Integer> integers = Arrays.asList(1,2,3);
object.put("list",integers);
//null
object.put("null", null);
System.out.println(object);
}
/**
* 解码
*/
@Test
public void testJson2(){
String str ="{\"boolean\":true,\"string\":\"string\",\"list\":[1,2,3],\"int\":2}";
JSONObject object = JSONObject.parseObject(str);
// String
String s = object.getString("string");
System.out.println(s);
// int
int i = object.getIntValue("int");
System.out.println(i);
//boolean
boolean b = object.getBooleanValue("boolean");
System.out.println(b);
//list
List<Integer> integers = JSON.parseArray(object.getJSONArray("list").toJSONString(),Integer.class);
for(Integer in : integers){
System.out.println(in+"#");
}
//null
System.out.println(object.getString("null"));
}
/**
程序执行结果图
*/
/**
* 实体类之间同Json 的互换
*/
@Test
public void testJson3(){
TestPerson json = new TestPerson(19,"李明");
List<TestPerson> list = new ArrayList<TestPerson>();
list.add(json);
list.add(new TestPerson(12,"张三"));
// 将集合 或者对象序列化成Json
System.out.println(JSON.toJSON(json));
System.out.println(JSON.toJSON(list));
// JSON串反序列化成对象
TestPerson person = JSON.parseObject("{\"name\":\"李明\",\"age\":19}",TestPerson.class);
System.out.printf("name:%s,age:%d\n",person.getName(),person.getAge());
String str ="[{\"name\":\"李四\",\"age\":20},{\"name\":\"张三\",\"age\":13}]";
// 将数组json对象反序列化成集合
List<TestPerson> listPerson = JSON.parseArray(str,TestPerson.class);
for(TestPerson item:listPerson){
System.out.println(item.getName());
System.out.println(item.getAge());
}
// 没有对象直接解析成JSon 对象
JSONObject jobj = JSON.parseObject("{\"name\":\"李明\",\"age\":19}");
System.out.printf("name:%s,age:%d\n",jobj.getString("name"),jobj.getBigInteger("age")); // 同testJson2 方法
// 没有对象直接解析JSON数组
JSONArray jarr = JSON.parseArray("[{\"name\":\"李明\",\"age\":19},{\"name\":\"张三\",\"age\":12}]");
System.out.println("Array:");
for(int i=0,len=jarr.size();i<len;i++){
JSONObject temp = jarr.getJSONObject(i);
System.out.printf("name:%s,age:%d\n",temp.getString("name"),temp.getBigInteger("age"));
}
System.out.println("tt:");
for(Object obj:jarr){
System.out.println(obj.toString());
}
}
/**
执行结果
*/
}
public class TestPerson {
private int age;
private String name;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public TestPerson(int age, String name) {
super();
this.age = age;
this.name = name;
}
}