json-lib包(最关键的两个类分别是jsonobject和jsonarray)完成对json的构造和一些基本方法的使用。
二者区别:
①JSONObject构造的字符串是键值对形式(key:value),多个键值对间以英文逗号连接;
②JSONArray构造的字符串是数组形式([array1,array2,...])。
需要使用的包下载链接:
一、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<Transport> myTool;
public Teacher(){
} public Teacher(String name,String sex,int age,List<Transport> 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<Transport> getMyTool() {return myTool;
}public void setMyTool(List<Transport> 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<Transport> tools = new ArrayList<Transport>();
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": "男"
}
动态WEB网站中的PHP和MySQL详细反映实际程序的需求,仔细地探讨外部数据的验证(例如信用卡卡号的格式)、用户登录以及如何使用模板建立网页的标准外观。动态WEB网站中的PHP和MySQL的内容不仅仅是这些。书中还提到如何串联JavaScript与PHP让用户操作时更快、更方便。还有正确处理用户输入错误的方法,让网站看起来更专业。另外还引入大量来自PEAR外挂函数库的强大功能,对常用的、强大的包
508
方式二:
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<String,String> 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<String,String> mmap=new HashMap<String,String>();
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<String> list=new ArrayList<String>();
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<String> list=new ArrayList<String>();
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"}二、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"]
}三、综合实例
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的构造和方法的使用的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号