JSON数据解析(一)——原生方法
来源:互联网 发布:易语言彩票源码 编辑:程序博客网 时间:2024/05/03 06:33
一, 基本概念
1, JavaScript Object Notation 基于javaScript的轻量级的数据交换格式
用于传输数据的一种方式
2, 分类
JSON 对象 由名值组成的一对大括号 name:value
{name1:value1,name2:value2,.....}
JSON 数组 [value1,value2,.....]
3, 解析
当json字符串以"{"开始, JSONObject解析
当json字符串以"["开始, JSONArray 解析
4, 导包 json-lib.jar
- public class JSONDEMO {
- public static void main(String[] args) throws JSONException {
- String str = "{person:[{name:'zhangsan',age:20},{name:'lisi',age:2},{name:'wangwu',age:3}]}";
- List<Person> l = new ArrayList<>();
- JSONObject ob = new JSONObject(str);
-
- JSONArray array = ob.getJSONArray("person");
- for (int i = 0; i < array.length(); i++) {
- JSONObject o = array.getJSONObject(i);
- String name = o.getString("name");
- int age = o.getInt("age");
- Person p = new Person(name, age);
- l.add(p);
- }
- for (Person person : l) {
- System.out.println(person);
- }
-
- }
- }
- public class Person {
- private String name;
- private int age;
-
- public Person(String name, int age) {
- super();
- this.name = name;
- this.age = age;
- }
-
- 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;
- }
-
- @Override
- public String toString() {
- return "Person [name=" + name + ", age=" + age + "]";
- }
-
- }
实例二:
- public class DemoJson {
-
-
-
-
-
-
-
-
-
- public static void main(String[] args) throws JSONException {
-
- String str = "{name:'zhangsan',age:20,dept:{no:1,name:'android'}}";
-
- JSONObject jsonObject = new JSONObject(str);
-
-
- String name = jsonObject.getString("name");
-
-
- int age = jsonObject.getInt("age");
-
-
- JSONObject jsonObject2 = jsonObject.getJSONObject("dept");
- int no = jsonObject2.getInt("no");
- String deptName = jsonObject2.getString("name");
-
- Dept dept = new Dept(no, deptName);
- Person person = new Person(name, age, dept);
-
- System.out.println(person);
-
- }
-
- }
- public class Person {
-
- private String name;
-
- private int age;
-
-
- private Dept dept;
-
- public Person(String name, int age, Dept dept) {
- super();
- this.name = name;
- this.age = age;
- this.dept = dept;
- }
-
- 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;
- }
-
- public Dept getDept() {
- return dept;
- }
-
- public void setDept(Dept dept) {
- this.dept = dept;
- }
-
- @Override
- public String toString() {
- return "Person [name=" + name + ", age=" + age + ", dept=" + dept + "]";
- }
- }
- public class Dept {
-
- private int no;
-
- private String name;
-
- public int getNo() {
- return no;
- }
-
- public void setNo(int no) {
- this.no = no;
- }
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- @Override
- public String toString() {
- return "Dept [no=" + no + ", name=" + name + "]";
- }
-
- public Dept(int no, String name) {
- super();
- this.no = no;
- this.name = name;
- }
- }
0 0