JSON-lib 패키지(가장 중요한 두 클래스는 JSONObject 및 JSONArray)는 json 구성과 몇 가지 기본 메서드 사용을 완료합니다.
둘의 차이점은
①JSONObject로 구성한 문자열은 키-값 쌍(key:value) 형식이며 여러 키-값 쌍이 쉼표로 연결되어 있습니다.
②JSONArray로 구성한 문자열은 다음과 같습니다. 배열 형식([array1, array2,...]).
사용해야 하는 패키지 다운로드 링크:
1. JSONObject 사용.
(1) JSON 문자열의 두 가지 구성 방법:
①Java 객체 사용, ②Map 컬렉션 사용.
1단계: 먼저 새 Java 프로젝트를 만들고 종속성 패키지를 가져옵니다.
2단계: 두 개의 테스트 클래스를 만듭니다.
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; } }
method
방법 1:
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": "男" }
방법 2:
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"}
③요소 메소드는 json 문자열 형식화 결과를 다음과 같이 출력합니다.
{"a": "1","b": "2","c": "300"}
2. 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"] }
3. 종합 예
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()); } }
출력 결과는 다음과 같습니다.
위 내용은 JSON-lib 패키지에 의한 json 구성 및 메소드 사용의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!