首页 >

JSON-lib包对json的构造和方法的使用

Java|java教程JSON-lib包对json的构造和方法的使用
javascript,JSONObject,JSONArray,json,解析,构造
Java-java教程
JSON-lib包(最关键的两个类分别是JSONObject和JSONArray)完成对json的构造和一些基本方法的使用。
cili源码,ubuntu怎么装程序,tomcat可以多大并发量,爬虫网页索引,php安全基础详解,云阳一站式seo推广代运营lzw
二者区别:
体育直播源码,安装完ubuntu 之后,爬虫request抓取动态,php strtime,seo sem广告lzw
①JSONObject构造的字符串是键值对形式(key:value),多个键值对间以英文逗号连接;
爱客影院源码下载,ubuntu ip设置工具,tomcat部署3种方式,智联 爬虫,php在线解释,海南网络seo关键词优化教程lzw
②JSONArray构造的字符串是数组形式([array1,array2,…])。

需要使用的包下载链接:

A、JSONObject的使用。

(1)JSON字符串的两种构造方法:

①使用Java对象;②使用Map集合。

步骤一:首先新建Java工程,导入依赖包;

步骤二:建立两个测试类:

Teacher.java

package com.snnu.json;import java.util.List;public class Teacher {private String name;private String sex;private int age;private List myTool;        public Teacher(){            }    public Teacher(String name,String sex,int age,List myTool){this.name = name;this.sex = sex;this.age = age;this.myTool = myTool;    }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 List getMyTool() {return myTool;    }public void setMyTool(List myTool) {this.myTool = myTool;    }}
Transport.java

package com.snnu.json;public class Transport {    private String name;private float price;    public Transport(){            }    public Transport(String name,float price){this.name = name;this.price = price;    }        public String getName() {return name;    }public void setName(String name) {this.name = name;    }public float getPrice() {return price;    }public void setPrice(float price) {this.price = price;    }                }
步骤三:写main方法

方式一:

package com.snnu.json;import java.util.ArrayList;import java.util.List;import net.sf.json.JSONObject;public class Demo_creajsonFromObject {// 利用java对象生成json字符串public JSONObject createJsonFromObject(Object object) {return JSONObject.fromObject(object);    }public static void main(String[] args) {// TODO Auto-generated method stubDemo_creajsonFromObject demo = new Demo_creajsonFromObject();        Teacher t = new Teacher();        t.setName("张三");        t.setSex("男");        t.setAge(21);        Transport bike = new Transport("自行车", 267);        Transport motorcycle = new Transport("摩托车", 3267);        Transport car = new Transport("小汽车", 100000);        List tools = new ArrayList();        tools.add(bike);        tools.add(motorcycle);        tools.add(car);        t.setMyTool(tools);        JSONObject ob = demo.createJsonFromObject(t);        System.out.println(ob);    }}
生成的json字符串为:

{    "age": 21,    "myTool": [        {            "name": "自行车",            "price": 267        },        {            "name": "摩托车",            "price": 3267        },        {            "name": "小汽车",            "price": 100000        }    ],    "name": "张三",    "sex": "男"}
方式二:

package com.snnu.json;import java.util.HashMap;import java.util.Map;import net.sf.json.JSONObject;public class Demo_creajsonFromMap {//使用map集合生成json字符串public JSONObject createJsonFromMap(Map map){        JSONObject jsob=new JSONObject();        jsob.putAll(map);return jsob;    }        public static void main(String[] args) {// TODO Auto-generated method stubDemo_creajsonFromMap demo=new Demo_creajsonFromMap();                Map mmap=new HashMap();        mmap.put("name", "张三");        mmap.put("sex", "男");        mmap.put("age", "21");                JSONObject ob=demo.createJsonFromMap(mmap);        System.out.println(ob);            }}
生成的json字符串为:

{"sex": "男","name": "张三","age": "21"}
(2)JSONObject的三个常用方法举例。

package com.snnu.json;import java.util.ArrayList;import java.util.List;import net.sf.json.JSONObject;public class MethodTest {//put方法:在一个json中插入一个节点,若该节点已存在,则该节点的值将会被替换public JSONObject testPut(){        JSONObject jo1=new JSONObject();                jo1.put("a", "1");        jo1.put("b", "2");        jo1.put("c", "3");                Transport bike=new Transport("bike",200);        jo1.put("d", bike);                List list=new ArrayList();        list.add("one");        list.add("two");        list.add("three");        jo1.put("e", list);                jo1.put("a", "100");        return jo1;    }        //accumulate方法:可以在同一个key下累积值,若key对应的value有值,则以数组形式累积;否则相当于put方法public JSONObject testAccumulate(){        JSONObject jo2=new JSONObject();                jo2.put("a", "1");        jo2.put("b", "2");        jo2.put("c", "3");        jo2.accumulate("c", "300");                Transport bike=new Transport("bike",200);        jo2.accumulate("c", bike);                List list=new ArrayList();        list.add("one");        list.add("two");        list.add("three");        jo2.accumulate("c", list);                jo2.put("d", "4");        return jo2;    }        //与put方法基本一致public JSONObject testElement(){        JSONObject jo3=new JSONObject();                jo3.put("a", "1");        jo3.put("b", "2");        jo3.put("c", "3");        jo3.element("c", "300");                return jo3;    }            public static void main(String[] args) {// TODO Auto-generated method stubMethodTest test=new MethodTest();        System.out.println("JSONObject的put方法使用"+test.testPut());        System.out.println("JSONObject的accumulate方法使用"+test.testAccumulate());        System.out.println("JSONObject的element方法使用"+test.testElement());            }}
①put方法输出json字符串格式化结果为:

{"a": "100","b": "2","c": "3","d": {"name": "bike","price": 200},"e": ["one","two","three"]}
②accumulate方法输出json字符串格式化结果为:

{"a": "1","b": "2","c": ["3","300",        {"name": "bike","price": 200},        ["one","two","three"]    ],"d": "4"}
③element方法输出json字符串格式化结果为:

{"a": "1","b": "2","c": "300"}
B、JSONArray的使用

(1)基本使用:

package com.snnu.json;import net.sf.json.JSONArray;import net.sf.json.JSONObject;public class demo_JsonArray {        public JSONObject testJsonArray(){        JSONObject ob=new JSONObject();                JSONArray ja=new JSONArray();        ja.add("1");        ja.add("2");        ja.add("3");        ja.add("4");        ja.add("5");                ob.put("array", ja);        return ob;    }        public static void main(String[] args) {// TODO Auto-generated method stubdemo_JsonArray djs=new demo_JsonArray();        System.out.println("JSONArray的使用:"+djs.testJsonArray());            }}
对输出后的字符串进行格式化:

{"array": ["1","2","3","4","5"]}
C、综合实例

package com.snnu.json;import net.sf.json.JSONArray;import net.sf.json.JSONObject;public class demo_testJson {            public JSONObject test(){                JSONObject jo=new JSONObject();        jo.put("name", "张三");        jo.put("sex","f");        jo.put("age",21);                Transport bike=new Transport("bike",250);        jo.put("extra", bike);        Transport car=new Transport("car",10000);        jo.accumulate("extra", car);        Transport motor=new Transport("motor",3000);        jo.accumulate("extra", motor);                System.out.println(jo);        //根据key值(为extra)取对应的valueString value=jo.getString("extra");        System.out.println(value);        //将字符串转化为JSONArrayJSONArray jsar=JSONArray.fromObject(value);        String str_2=String.valueOf(jsar.get(1));        System.out.println(str_2);        //将字符串转化为JSONObjectJSONObject jsob=JSONObject.fromObject(str_2);        System.out.println("名称:"+jsob.getString("name"));        System.out.println("价钱:"+jsob.getString("price"));                System.out.println("-------------------------------分界线-------------------------------------------");        return jo;            }public static void main(String[] args) {// TODO Auto-generated method stubdemo_testJson dtj=new demo_testJson();        System.out.println("综合测试:"+dtj.test());    }}
输出结果为:

{"name":"张三","sex":"f","age":21,"extra":[{"name":"bike","price":250},{"name":"car","price":10000},{"name":"motor","price":3000}]}[{"name":"bike","price":250},{"name":"car","price":10000},{"name":"motor","price":3000}]{"name":"car","price":10000}名称:car价钱:10000-------------------------------分界线-------------------------------------------综合测试:{"name":"张三","sex":"f","age":21,"extra":[{"name":"bike","price":250},{"name":"car","price":10000},{"name":"motor","price":3000}]}

JSON-lib包对json的构造和方法的使用
  • 有关JsonObject中的key-value数据解析排序(详细教程)
  • 有关JsonObject中的key-value数据解析排序(详细教程) | 有关JsonObject中的key-value数据解析排序(详细教程) ...

    JSON-lib包对json的构造和方法的使用
  • Android中的JSONObject和JSONArray解析json数据
  • Android中的JSONObject和JSONArray解析json数据 | Android中的JSONObject和JSONArray解析json数据 ...

    JSON-lib包对json的构造和方法的使用
  • 首信易支付,话费充值接口解决方法
  • 首信易支付,话费充值接口解决方法 | 首信易支付,话费充值接口解决方法 ...