JSON构造和解析json-lib(一)

1 篇文章 0 订阅

要介绍用json-lib构造和解析Json数据,主要分为两部分介绍:1、介绍将list map bean string array转换为JSON数据格;2、将JSON转化为list map bean形式。
下面链接包含了使用json-lib构造和解析Json数据的所有相关jar包和该文介绍使用的所有代码
所有jar包:
这里写图片描述

一、将list map bean string array转换为JSON数据格

1、将list转化为json数据格式使用方法看下面代码

package com.sd.test.tojson;

import java.util.ArrayList;
import java.util.List;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

public class ListToJson {
    public static void main(String args[]){
        ListToJson l2j=new ListToJson();
        l2j.list2Json();
    }
    public void list2Json(){
        List<String> list=new ArrayList<String>();
        list.add("one");
        list.add("two");
        JSONArray list2json=JSONArray.fromObject(list);
        //不能用下面的转换
        //JSONObject list2json1=JSONObject.fromObject(list);

        //System.out.println(list2json);
        System.out.println(list2json.toString());
        //System.out.println(list2json1);
        //System.out.println(list2json1.toString());
    }
}
输出结果:["one","two"]

2、将map转化为json数据格式使用方法看下面代码

package com.sd.test.tojson;

import java.util.HashMap;
import java.util.Map;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

public class MapToJson {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        MapToJson m2j=new MapToJson();
        m2j.map2json();

    }
    public void map2json(){
        Map<String,String> map=new HashMap<String,String>();
        map.put("one","dog");
        map.put("two","cat");
        map.put("three","pig");
        map.put("four","chicken");
        map.put("five","cattle");

        JSONObject map2json=JSONObject.fromObject(map);
        JSONArray map2json1=JSONArray.fromObject(map);

        System.out.println(map2json);
        System.err.println(map2json1);
    }

}

输出结果:
{“four”:”chicken”,”one”:”dog”,”two”:”cat”,”three”:”pig”,”five”:”cattle”}
[{“four”:”chicken”,”one”:”dog”,”two”:”cat”,”three”:”pig”,”five”:”cattle”}]
3、将bean转化为json数据格式使用方法看下面代码其中用到Student类的代码在下面有

package com.sd.test.tojson;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

import com.sd.test.modle.Student;

public class BeanToJson {

    public static void main(String[] args){
        BeanToJson b2j=new BeanToJson();
        b2j.bean2json();

    }
    public void bean2json(){
        Student student1=new Student();

        student1.setName("xiao ming");
        student1.setAge(20);
        student1.setStrudent(true);
        JSONObject bean2json=JSONObject.fromObject(student1);
        JSONArray bean2json1=JSONArray.fromObject(student1);

        System.out.println(bean2json);
        //System.out.println(bean2json.toString());
        System.err.println(bean2json1);
        //System.err.println(bean2json1.toString());
    }

}

输出结果:
{“age”:20,”name”:”xiao ming”,”sex”:”“,”strudent”:true}
[{“age”:20,”name”:”xiao ming”,”sex”:”“,”strudent”:true}]

4、将String转化为json数据格式使用方法看下面代码

package com.sd.test.tojson;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

public class StringToJson {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        StringToJson s2j=new StringToJson();
        s2j.string2json();
    }
    public void string2json(){
        String s="{\"four\":\"chicken\",\"one\":\"dog\",\"two\":\"cat\",\"three\":\"pig\",\"five\":\"cattle\"}";
        String s1="[{\"four\":\"chicken\",\"one\":\"dog\",\"two\":\"cat\",\"three\":\"pig\",\"five\":\"cattle\"}]";
        String s2="{\"age\":21,\"list\":[\"one\",\"two\"],\"list1\":[{\"age\":20,\"name\":\"xiao ming\",\"sex\":\"boy\",\"strudent\":true},{\"age\":23,\"name\":\"xiao hong\",\"sex\":\"girl\",\"strudent\":true}],\"map\":{\"one\":{\"age\":20,\"name\":\"xiao ming\",\"sex\":\"boy\",\"strudent\":true},\"two\":{\"age\":23,\"name\":\"xiao hong\",\"sex\":\"girl\",\"strudent\":true}},\"name\":\"da jun\",\"sex\":\"boy\",\"strudent\":false,\"student\":null}";
        JSONObject string2json=JSONObject.fromObject(s);
        //不能用JSONObject去解以【中括号】开始的字符串
        //JSONObject string2json1=JSONObject.fromObject(s1);
        JSONObject string2json12=JSONObject.fromObject(s2);


        //不能用JSONArray解以{大括号}开始的字符串
        //JSONArray string2json2=JSONArray.fromObject(s);
        JSONArray string2json3=JSONArray.fromObject(s1);

        System.out.println(string2json);
        //System.out.println(string2json1);
        System.out.println(string2json12);

        //System.err.println(string2json2);
        System.err.println(string2json3);

    }

}

输出结果:
{“four”:”chicken”,”one”:”dog”,”two”:”cat”,”three”:”pig”,”five”:”cattle”}
{“age”:21,”list”:[“one”,”two”],”list1”:[{“age”:20,”name”:”xiao ming”,”sex”:”boy”,”strudent”:true},{“age”:23,”name”:”xiao hong”,”sex”:”girl”,”strudent”:true}],”map”:{“one”:{“age”:20,”name”:”xiao ming”,”sex”:”boy”,”strudent”:true},”two”:{“age”:23,”name”:”xiao hong”,”sex”:”girl”,”strudent”:true}},”name”:”da jun”,”sex”:”boy”,”strudent”:false,”student”:null}
[{“four”:”chicken”,”one”:”dog”,”two”:”cat”,”three”:”pig”,”five”:”cattle”}]

5、将Array转化为json数据格式使用方法看下面代码

package com.sd.test.tojson;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

public class ArrayToJson {
    public static void main(String[] args){
        ArrayToJson a2j=new ArrayToJson();
        a2j.array2json();

    }
    public void array2json(){
        //静态初始化数组:方法一  
       /* String name[] = new String[] {  
                "Tom","Sam","Mimi"  
        };*/  

        //静态初始化数组:方法二  
        //String name[] = {"Jimmy","Gougou","Doggy"};  

        //动态初始化数据  
        String name[] = new String[2];  
        name[0] = "Thinking in Java";  
        name[1] = "Effective Java";  
        //下面这种方法不行
       // JSONObject array2json=JSONObject.fromObject(name);
        JSONArray array2json1=JSONArray.fromObject(name);

        //System.out.print(array2json.toString());
        System.err.print(array2json1.toString());
    }
}

输出结果:
[“Thinking in Java”,”Effective Java”]

6、将beans转化为json数据格式使用方法看下面代码其中用到Student和StudentWithLMBS类的代码在下面

package com.sd.test.tojson;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

import com.sd.test.modle.Student;
import com.sd.test.modle.StudentWithLMBS;

public class ComplexToJson {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        ComplexToJson c2j=new ComplexToJson();
        c2j.complexTest();

    }
    public void complexTest(){
        Student student=new Student();
        Student student1=new Student();
        StudentWithLMBS lmbs=new StudentWithLMBS();
        List<String> list=new ArrayList<String>();
        List<Object> list2=new ArrayList<Object>();
        Map<String,Object> map=new HashMap<String,Object>();

        student.setName("xiao ming");
        student.setAge(20);
        student.setStrudent(true);
        student.setSex("boy");

        student1.setName("xiao hong");
        student1.setAge(23);
        student1.setStrudent(true);
        student1.setSex("girl");

        map.put("one", student);
        map.put("two", student1);

        list.add("one");
        list.add("two");

        list2.add(student);
        list2.add(student1);

        lmbs.setAge(21);
        lmbs.setName("da jun");
        lmbs.setSex("boy");
        lmbs.setStrudent(false);
        lmbs.setMap(map);
        lmbs.setList(list);
        lmbs.setList1(list2);


        JSONObject complextest=JSONObject.fromObject(lmbs);

        JSONArray complextest1=JSONArray.fromObject(lmbs);

        System.out.println(complextest);
        System.out.println(complextest1);

    }
}

输出结果:
{“age”:21,”list”:[“one”,”two”],”list1”:[{“age”:20,”name”:”xiao ming”,”sex”:”boy”,”strudent”:true},{“age”:23,”name”:”xiao hong”,”sex”:”girl”,”strudent”:true}],”map”:{“one”:{“age”:20,”name”:”xiao ming”,”sex”:”boy”,”strudent”:true},”two”:{“age”:23,”name”:”xiao hong”,”sex”:”girl”,”strudent”:true}},”name”:”da jun”,”sex”:”boy”,”strudent”:false,”student”:null}
[{“age”:21,”list”:[“one”,”two”],”list1”:[{“age”:20,”name”:”xiao ming”,”sex”:”boy”,”strudent”:true},{“age”:23,”name”:”xiao hong”,”sex”:”girl”,”strudent”:true}],”map”:{“one”:{“age”:20,”name”:”xiao ming”,”sex”:”boy”,”strudent”:true},”two”:{“age”:23,”name”:”xiao hong”,”sex”:”girl”,”strudent”:true}},”name”:”da jun”,”sex”:”boy”,”strudent”:false,”student”:null}]

上述用到的两个bean对象

student类:

package com.sd.test.modle;

public class Student {
    private String name;
    private String sex;
    private int age;
    private boolean isStrudent;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getSex() {
        return sex;
    }
    public void setSex(String sex) {
        this.sex = sex;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public boolean isStrudent() {
        return isStrudent;
    }
    public void setStrudent(boolean isStrudent) {
        this.isStrudent = isStrudent;
    }
}

StudentWithLMBS类

package com.sd.test.modle;

import java.util.List;
import java.util.Map;

public class StudentWithLMBS {
    private String name;
    private String sex;
    private int age;
    private boolean isStrudent;
    private List<String> list;
    private List<Object> list1;
    private Map<String,Object> map;
    private Student student;

    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getSex() {
        return sex;
    }
    public void setSex(String sex) {
        this.sex = sex;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public boolean isStrudent() {
        return isStrudent;
    }
    public void setStrudent(boolean isStrudent) {
        this.isStrudent = isStrudent;
    }
    public Student getStudent() {
        return student;
    }
    public void setStudent(Student student) {
        this.student = student;
    }
    public List<String> getList() {
        return list;
    }
    public void setList(List<String> list) {
        this.list = list;
    }
    public Map<String, Object> getMap() {
        return map;
    }
    public void setMap(Map<String, Object> map) {
        this.map = map;
    }
    public List<Object> getList1() {
        return list1;
    }
    public void setList1(List<Object> list1) {
        this.list1 = list1;
    }

}

二、将JSON转化为list map bean形式
1、将json转化为list代码如下:

package com.sd.test.parsejson;

import java.util.ArrayList;
import java.util.List;

import net.sf.json.JSONArray;

public class JsonToList {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        JsonToList j2l=new JsonToList();
        j2l.jsontolist();
    }

    //@SuppressWarnings("deprecation")
    public void jsontolist(){
        String jlist="[\"one\",\"two\"]";
        List<String> list=new ArrayList<String>();
        List<String> list2=new ArrayList<String>();
        JSONArray js=JSONArray.fromObject(jlist);
        //方法一该方法不推荐将来可能被废弃
        list=js.toList(js);
        System.out.println(list);
        //方法二
        for(int i=0;i<js.size();i++){
            list2.add(js.getString(i));
        }
        System.err.println(list);

    }
}

输出结果:
[one, two]
[one, two]

2、将JSON转化为map代码如下

package com.sd.test.parsejson;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

import net.sf.json.JSONObject;

public class JsonToMap {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        String mj="{\"four\":\"chicken\",\"one\":\"dog\",\"two\":\"cat\",\"three\":\"pig\",\"five\":\"cattle\"}";
        JSONObject stojson=JSONObject.fromObject(mj);
        Map<String,String> map=new HashMap<String,String>();
        Iterator<String> it=stojson.keys();
        //System.out.println(stojson.keys());
        while(it.hasNext()){
            String key=(String)it.next();
            String value=(String)stojson.get(key);
            map.put(key, value);
        }
        System.out.println(map);

    }

}

输出结果:
{four=chicken, one=dog, two=cat, three=pig, five=cattle}
3、将JSON转化为bean代码如下

package com.sd.test.parsejson;

import net.sf.json.JSONObject;

import com.sd.test.modle.Student;

public class JsonToBean {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        JsonToBean j2b=new JsonToBean();
        j2b.jsontobean();
    }
    public void jsontobean(){
        String beanjson="{\"age\":20,\"name\":\"xiao ming\",\"sex\":\"\",\"strudent\":true}";
        Student student=new Student();

        JSONObject beanj=JSONObject.fromObject(beanjson);
        student =(Student)beanj.toBean(beanj,Student.class);

        System.err.println(student.getName());
    }

}

输出结果:
xiao ming
4、将复杂的SON数据解析仅供参考:

package com.sd.test.parsejson;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import com.sd.test.modle.Student;
import com.sd.test.modle.StudentWithLMBS;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

public class ParseJson {
    public static void main(String[] args){
        ParseJson pj=new ParseJson();
        pj.parseJson();
    }
    public void parseJson(){
        String objjson="{\"age\":21,\"list\":[\"one\",\"two\"],\"list1\":[{\"age\":20,\"name\":\"xiao ming\",\"sex\":\"boy\",\"strudent\":true},{\"age\":23,\"name\":\"xiao hong\",\"sex\":\"girl\",\"strudent\":true}],\"map\":{\"one\":{\"age\":20,\"name\":\"xiao ming\",\"sex\":\"boy\",\"strudent\":true},\"two\":{\"age\":23,\"name\":\"xiao hong\",\"sex\":\"girl\",\"strudent\":true}},\"name\":\"da jun\",\"sex\":\"boy\",\"strudent\":false,\"student\":null}";
        String arrayjson="[{\"age\":21,\"list\":[\"one\",\"two\"],\"list1\":[{\"age\":20,\"name\":\"xiao ming\",\"sex\":\"boy\",\"strudent\":true},{\"age\":23,\"name\":\"xiao hong\",\"sex\":\"girl\",\"strudent\":true}],\"map\":{\"one\":{\"age\":20,\"name\":\"xiao ming\",\"sex\":\"boy\",\"strudent\":true},\"two\":{\"age\":23,\"name\":\"xiao hong\",\"sex\":\"girl\",\"strudent\":true}},\"name\":\"da jun\",\"sex\":\"boy\",\"strudent\":false,\"student\":null}]";
        Student student=new Student();
        StudentWithLMBS swlmbs=new StudentWithLMBS();


        JSONObject objj=JSONObject.fromObject(objjson);

        JSONArray arrayj=JSONArray.fromObject(arrayjson);




        //student =(Student)objj.toBean(objj.getJSONArray("list1").getJSONObject(1),Student.class);
        student =(Student)JSONObject.toBean(objj.getJSONArray("list1").getJSONObject(1),Student.class);
        System.err.println(student.getName());
        swlmbs=(StudentWithLMBS)objj.toBean(objj,StudentWithLMBS.class);
        //swlmbs=(StudentWithLMBS)JSONObject.toBean(objj,StudentWithLMBS.class);
        System.out.println(swlmbs.getList().toString());




        if(objj.has("list")){

            JSONArray jarray=objj.getJSONArray("list");
            //System.out.println(jarray.getString(1));
            List<String> list=new ArrayList<String>();
            for(int i=0;i<jarray.size();i++){
                list.add(jarray.getString(i));
                //System.out.println(jarray.getString(i));
            }
            System.err.println(list.toString());
        }

    }
}

输出结果:
xiao hong
[one, two]
[one, two]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值